c++ bool型函数的调用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ bool型函数的调用相关的知识,希望对你有一定的参考价值。
bool is_empty(string &s) return s.empty();
这个函数有什么问题,调用的时候提示 is_empty 不明确。
TimeType ob;
TimeType ob2;
if(ob.Equal(ob2))
cout << "两者相等的结果" << endl;
if(ob.LessThan(ob2))
cout << "ob小于ob2的结果" << endl;
支持继承和重用
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。
以上内容参考:百度百科-C++
参考技术A #include<stdio.h>#include <string>using namespace std; bool is_empty(string &s) return s.empty(); int main() string s("sssssss"); string s2; if(is_empty(s)) printf("s 是空串\\n"); else printf("string s = %s\\n",s.c_str()); if(is_empty(s2)) printf("s2 是空串\\n"); else printf("string s2 = %s\\n",s2.c_str()); return 0;结果显示如下:
s = sssssss
s2 is empty
运行结果正常,如果题目出错,可能引用的头文件有问题,或者尝试重新更改一下字符串的名字,看下结果。
扩展资料:
bool型函数指的是返回值为bool类型的函数,其调用方式和int 型函数没有太大的区别。
bool型变量的值只有 真 (true) 和假 (false)。bool可用于定义函数类型为布尔型,函数里可以有 return true; return false 之类的语句。
bool为布尔型用作逻辑判断。
参考技术Bbool型函数指的是返回值为bool类型的函数,其调用方式和int 型函数没有太大的区别。
bool型变量的值只有 真 (true) 和假 (false)。bool可用于定义函数类型为布尔型,函数里可以有 return true; return false 之类的语句。
bool为布尔型用作逻辑判断
BOOL在<windef.h>typedef int BOOL;
在<wtypes.h>typedef long BOOL;
扩展资料
BOOL
bool表示布尔型变量,也就是逻辑型变量的定义符,以英国数学家、布尔代数的奠基人乔治·布尔(George Boole)命名。bool类似于float,double等,只不过float定义浮点型,double定义双精度浮点型。 在objective-c中提供了相似的类型BOOL,它具有YES值和NO值;在java中则对应于boolean类型。
参考资料:百度百科:BOOL
bool型函数指的是返回值为bool类型的函数,其调用方式和int 型函数没有太大的区别。
bool型变量的值只有 真 (true) 和假 (false)。bool可用于定义函数类型为布尔型,函数里可以有 return true; return false 之类的语句。
bool为布尔型用作逻辑判断
BOOL在<windef.h>typedef int BOOL;
在<wtypes.h>typedef long BOOL;
扩展资料:
bool取值false和true,0为false,非0为true。(例如-1和2都是true)。
如果数个bool对象列在一起,可能会各占一个Byte,这取决于编译器。
BOOL是微软定义的typedef int BOOL(在windef.h中),0为FALSE,1为TRUE。(-1和2既不是TRUE也不是FALSE)。
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
布尔型变量bool
布尔型变量的值只有 真 (true) 和假 (false)。
布尔型变量可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果为真或为假。
bool可用于定义函数类型为布尔型,函数里可以有 return TRUE; return FALSE 之类的语句。
参考资料:百度百科:bool函数
参考技术D我试了一下,很正常啊。
#include <string>
using namespace std;
bool is_empty(string &s) return s.empty();
int main()
string s("aaaaaaaaa");
string s2;
if(is_empty(s)) printf("string s is empty\\n");
else printf("string s = %s\\n",s.c_str());
if(is_empty(s2)) printf("string s2 is empty\\n");
else printf("string s2 = %s\\n",s2.c_str());
return 0;
运行结果:
string s = aaaaaaaaa
string s2 is empty
我用vs2013就会提示这个错误,用VC6.0就没事。
你编译的是上面贴的源码吗?
追问恩 ,一模一样
本回答被提问者和网友采纳函数调用之间的 OR 运算符
【中文标题】函数调用之间的 OR 运算符【英文标题】:OR operator between function calls 【发布时间】:2014-07-18 08:24:33 【问题描述】:两者之间有什么区别:
if (!bool_function())
void_function();
和
bool_function() || void_function();
除了可读性?
即使第二个函数返回 void,我可以使用第二种形式吗?
如果bool_function
返回true,是否保证在所有基于C 的编程语言(C++、C#、Java)中不会执行void_function
?
编辑: 我问的原因是因为在我的 C 编译器上什至没有给出任何警告,并且它按预期工作。我正在使用 IAR Embedded Workbench IDE。
【问题讨论】:
这不是有效的 Java,我怀疑它甚至是有效的 C 这不会在 C# 中编译。bool_function() || void_function();
不知道C是否支持,但java不支持。布尔表达式的所有组件都必须是布尔值,因此不允许使用 void。
嗯...在 Java 中,您也可以将 ||
运算符应用于布尔值,这意味着 bool_function()||void_function()
不会编译,因为 void_funcion()
不会返回 boolean
。
这是gcc
所说的:error: void value not ignored as it ought to be bool_function() || void_function();
【参考方案1】:
嗯,是的,第二个没有编译。
你不能 or
一个 bool 和一个 void。
更新:你说你的 C 编译器编译这个并且它工作正常。我对此表示怀疑。也就是说,我确定你的编译器会编译它,但是bool || void
的结果是什么? void
总是正确的吗?总是假的?有时一个,有时另一个?
简而言之 - 不要这样做。使用第一种形式,告诉每个阅读您的代码的人您正在做什么。
【讨论】:
请提供有关“不编译”的更多详细信息。查看我的编辑:它在 C 上运行良好。 @BogdanAlexandru 你确定void_function
实际上被定义为返回void
吗?如果简单地省略返回类型,则默认为int
。 (当然void *
与void
不同。)
@Arkku 无效。编译器设置为 C99,我不确定它到底是什么编译器,它内置在 IAR 中。
@BogdanAlexandru 好的,我无法使用该编译器进行测试,但这绝对是规则的一个例外。顺便说一句,如果您在||
之后添加演员(void)
,它仍然有效吗?即boolf() || (void) voidf();
。
我忘记了它在 C 标准中的声明位置,但是从 void
转换为其他类型是 未定义的行为,因此不需要是错误。【参考方案2】:
Java specification 表示如果左侧表达式为真,则不计算右侧表达式。 C# 似乎也是如此。如果您查看 C 和 C++ 规范,大概他们会说同样的话。
【讨论】:
如果整个表达式未编译,则不会计算右侧表达式。这不是合法的 Java、C++ 或 C# 代码。它可能是合法的 C,尽管我怀疑它是合法的 C99。【参考方案3】:如果没有编译错误,我认为它们是相同的。这种现象就是所谓的短路评估
bool_function() || void_function();
如果 bool_function 返回非零值,则无论 void_function() 是否返回,值或 OR 逻辑评估都将为 TRUE,因此它将跳过执行后面的函数。
并非所有语言都描述了这一特性,尤其是一些脚本语言。 短路评估增加了编译器实现的复杂性。
【讨论】:
以上是关于c++ bool型函数的调用的主要内容,如果未能解决你的问题,请参考以下文章