草庐IT

c++ - 哪个值更好用? boolean 真还是整数 1?

这有意义吗? 最佳答案 booleantrue是一个boolean值。当你想表达满足某个二元条件时使用它。整数文字1是一个数字。每当您计算某些东西时,请使用它。不要将整数用于boolean值,反之亦然。它们不一样。考虑一个变量intisEnabled。当然,我可以猜测0和1可能是该变量的唯一预期值。但在语言方面,没有什么能阻止我分配4247891。但是,使用boolean值会将有效值限制为true和false。这没有任何猜测的余地。(C++int和bool在某种程度上是可转换的,但通常不被接受)

c++ - 运算符 |= 用于 C++ 中的 boolean 值

我偶然发现了以下C++结构:boolresult=false;for(inti=0;i我认为这个|=是OR运算符的快捷方式,并且result最终将等于true如果至少这些对TryAndDoSomething的调用之一返回了true。但现在我想知道是否多个调用实际上可以返回true。事实上,如果我们将操作扩展为:result=result||TryAndDoSomething(i);那么只有当return评估为false时才会调用该方法,也就是说,如果在返回true之前没有其他调用。因此,在一个调用返回true后,将不再进行其他调用。这是正确的解释吗? 最佳答

c++ - 运算符 |= 用于 C++ 中的 boolean 值

我偶然发现了以下C++结构:boolresult=false;for(inti=0;i我认为这个|=是OR运算符的快捷方式,并且result最终将等于true如果至少这些对TryAndDoSomething的调用之一返回了true。但现在我想知道是否多个调用实际上可以返回true。事实上,如果我们将操作扩展为:result=result||TryAndDoSomething(i);那么只有当return评估为false时才会调用该方法,也就是说,如果在返回true之前没有其他调用。因此,在一个调用返回true后,将不再进行其他调用。这是正确的解释吗? 最佳答

c++ - 定义双感叹号?

我了解双感叹号的作用(或者我想我了解),但我不确定它是如何在随机对象上定义的。例如在下面的代码片段中:Assignment*a;if(!getAssignment(query,a))returnfalse;hasSolution=!!a;if(!a)returntrue;我如何知道双感叹号会产生什么值?换句话说,它总是转换为true吗?错误的?或者你可以为它定义一个行为,比如执行一个方法来确定结果(对象如何知道在这种情况下如何行动)?由于所有这些感叹号的事情,我对这段代码有点困惑。任何解释都值得赞赏。希望我说得清楚,谢谢。 最佳答案

c++ - 定义双感叹号?

我了解双感叹号的作用(或者我想我了解),但我不确定它是如何在随机对象上定义的。例如在下面的代码片段中:Assignment*a;if(!getAssignment(query,a))returnfalse;hasSolution=!!a;if(!a)returntrue;我如何知道双感叹号会产生什么值?换句话说,它总是转换为true吗?错误的?或者你可以为它定义一个行为,比如执行一个方法来确定结果(对象如何知道在这种情况下如何行动)?由于所有这些感叹号的事情,我对这段代码有点困惑。任何解释都值得赞赏。希望我说得清楚,谢谢。 最佳答案

c++ - 带有 boolean 参数的模板

我需要用bool参数实现模板。如果bool=true,我们需要使用列表容器,否则我们需要使用vector容器。template我该怎么做? 最佳答案 您至少有三种方法可以做到这一点。我。使用std::conditional:templatestructA{typenamestd::conditional,std::vector>::typecontainer;};二。使用templatespecialization对于bool参数templatestructA;templatestructA{std::listcontainer;}

c++ - 带有 boolean 参数的模板

我需要用bool参数实现模板。如果bool=true,我们需要使用列表容器,否则我们需要使用vector容器。template我该怎么做? 最佳答案 您至少有三种方法可以做到这一点。我。使用std::conditional:templatestructA{typenamestd::conditional,std::vector>::typecontainer;};二。使用templatespecialization对于bool参数templatestructA;templatestructA{std::listcontainer;}

c++ - _Bool 和 bool : How do I solve the problem of a C library that uses _Bool?

我用C语言编写了一组数据结构和函数,其中一些使用_Bool数据类型。当我开始时,项目将是纯C。现在我正在研究使用基于C++的GUI工具包,并将后端代码制作成库。但是,在编译C++GUI时,编译器会发出以下错误:ISOC++禁止声明没有类型的“_Bool”我最初认为我可以搜索并将_Bool替换为bool并创建:/*mybool.h*/#ifndefMYBOOL_H#defineMYBOOL_Htypedef_Boolbool;#endif/*MYBOOL_H*/然后在任何使用_Bool的header中#ifdef__cplusplusextern"C"{#else#include"myb

c++ - _Bool 和 bool : How do I solve the problem of a C library that uses _Bool?

我用C语言编写了一组数据结构和函数,其中一些使用_Bool数据类型。当我开始时,项目将是纯C。现在我正在研究使用基于C++的GUI工具包,并将后端代码制作成库。但是,在编译C++GUI时,编译器会发出以下错误:ISOC++禁止声明没有类型的“_Bool”我最初认为我可以搜索并将_Bool替换为bool并创建:/*mybool.h*/#ifndefMYBOOL_H#defineMYBOOL_Htypedef_Boolbool;#endif/*MYBOOL_H*/然后在任何使用_Bool的header中#ifdef__cplusplusextern"C"{#else#include"myb

c++ - bool 类型的默认构造函数值

C++中bool类型的默认构造函数返回什么值?例如写作inti=int();保证变量i总是以0开头。我想这样的初始化例程也是可能的:boolb=bool();但不幸的是,我在任何地方都找不到这样一个默认的bool构造函数被定义为返回的值。变量b是否总是用false或true初始化。 最佳答案 假.见于C++14草案N4296,第8.5节(初始化程序),第6段,列表项1和其中的引用,以及第8段,列表项4。 关于c++-bool类型的默认构造函数值,我们在StackOverflow上找到一个