草庐IT

Operators

全部标签

c++ - C++运算符 "&"和 "->"的优先级

鉴于以下情况:&row->count&(row->count)会在C++中计算还是(&row)->count在C++中计算?编辑:这是一个很棒的link对于C++优先级。 最佳答案 就优先规则而言,我一直喜欢SteveOualline在“PracticalC”中提出的规则:TherearefifteenprecedencerulesinC(&&comesbefore||comesbefore?:).Thepracticalprogrammerreducesthesetotwo:1)Multiplicationanddivisionc

c++ - while循环,好像什么都没做?

您好,我正在尝试用C++编写一个函数,它接受一个数字i,然后通过循环运行以找到它的倍数,然后确定它是否为素数,从而确定它是否为素数通过一系列的测试素数。但是,似乎循环甚至没有运行。我已经告诉它无论在循环中的哪个位置都输出,但我没有得到任何输出。这是代码:#includeusingnamespacestd;intmain(){intj=1;intz=0;inti=10;boolp=false;while(p=false){cout2){p=true;cout我不在乎它背后的数学是否正确,我想自己弄清楚它以获取学习经验。但是,如果有人可以通过易于理解的解释帮助我解决这个问题,我将不胜感激!

c++ - c++中的i+++增量是什么

谁能告诉我c++中i+++递增的过程是什么 最佳答案 这是一个语法错误。使用maximummunchingrulei+++标记为:i+++最后的+是二元加法运算符。但显然它没有导致解析器错误的两个操作数。编辑:来自评论的问题:我们可以有i++++j吗?它被标记为:i++++j这又是一个语法错误,因为++是一元运算符。在类似的行上,i+++++j被扫描器标记为:i+++++j与((i++)++)+j相同,再次出错,因为i++不是左值并使用++不允许。 关于c++-c++中的i+++增量是什

c++ - 为什么不使用强制转换语法调用 "operator void"?

在玩thisanswer时通过userGMan我制作了以下代码片段(使用VisualC++9编译):classClass{public:operatorvoid(){}};Classobject;static_cast(object);(void)object;object.operatorvoid();通过调试器后,我发现转换为void不会调用Class::operatorvoid(),只有第三次调用(显式调用运算符)实际上调用了运算符,这两个转换什么都不做。为什么operatorvoid没有用强制转换语法调用? 最佳答案 在§1

c++ - 为什么 << 运算符会用 cout 截断字符?

我在while循环中使用std::getline并使用cout打印输出,我发现打印时我的行的开头被截断了:按预期工作:std::stringline;while(std::getline(csv,line)){std::cout没有按预期工作,从我的行中删除了前两个字符std::stringline;while(std::getline(csv,line)){std::cout我以前从未注意到这种行为,为什么现在会发生这种情况? 最佳答案 这似乎是正在发生的事情:行字符串末尾的字符包含回车字符。如果您的字符串是HelloWorld,

c++ - 模板运算符 << 循环

在我的库代码中:classVeryStrictClass{public:templateVeryStrictClass&operator无法重新实现它。这禁止像这样声明函数template/*checktoStringexistance*/VeryStrictClass&operatortoString();}其中toString()不是虚拟的。我有很多类似的类要放入VeryStrictClass。有什么办法可以绕过这个限制吗? 最佳答案 您可以为自己的消息类型使用模板特化。classfoo{};classbar:publicfoo

c++ - 运算符的使用 ->*

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Howtooverloadthe->*operator?运算符->*是什么意思?以及它如何在重载中发挥作用?

c++ - 一个重载的函数调用运算符可以有多少个操作数?

Exercise14.33:Howmanyoperandsmayanoverloadedfunction-calloperatortake?这是我正在阅读的C++Primer5thEdition中的一个问题。也来自本书:Anoverloadedoperatorfunctionhasthesamenumberofparametersastheoperatorhasoperands.(Section14.1)来自anotherthreadonSO:—Parametersinonefunctiondefinition[256].—Argumentsinonefunctioncall[256]

c++ - const 指针和 const 数组的输出

当我们有两个运算符用于输出对象和这些对象的数组,并尝试输出常量对象数组时,就会涉及到对象运算符。有没有办法强制数组的运算符与常量对象的c数组一起使用?示例代码:#include#includeusingstd::size_t;namespacenm{structC{inti;};templateusingc_c_array=C[N];inlinestd::ostream&operatorinlinestd::ostream&operatorconst&){returnlhs输出:1211此外,在我的例子中,2运算符使用1作为输出。 最佳答案

c++ - std::function 的 operator== 的真正目的是什么?

我不止一次看到std::function的operator==被误用,我不得不解释它的真正用途是什么。为了有利于future读者的清晰起见,here是文档。上面提到的文档说:Comparesa std::function withanullpointer.Emptyfunctions(thatis,functionswithoutacallabletarget)compareequal,non-emptyfunctionscomparenon-equal.也就是说,std::function也有operatorbool()(here是文档),其行为方式几乎相同并且可以使用代替比较my_