c++ - 赋值运算符返回

标签 c++ operators return-value implicit assign

<分区>

我正在为 this answer 做一个例子但是我忘记输入 return *this; 来结束我的赋值运算符,所以 Val 的赋值运算符看起来像这样:

Val& operator= (const int _a) {a = _a; b = _a + fmod(b, 1.0F);}

看起来不应该,但是gcc compiles and runs this code .这怎么可能?这是否类似于隐含的 returnmain 函数?

最佳答案

不,没有隐含的返回,但在默认模式下,g++ 不会将丢失的 return 报告为错误。原因是缺少 return 会使程序格式错误,而标准不要求任何格式错误的程序报告。

您需要确保您的 g++ 始终具有以下参数:-Wall -Wextra -Werror -pedantic。这将确保 gcc 会报告类似的错误以及更多错误。

关于c++ - 赋值运算符返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36720568/

相关文章:

c++ - 通过范围检查和带符号的 size_type 扩展 std::vector

c++ - 对运算符 c++ 感到困惑

java - 为什么不需要将方法的返回值分配给变量?

c++ - 在 C++ 中保持对函数返回值的引用

c++ - C++,在C++中管理文件的问题

c++ - 如何有序遍历 Boost.Heap 优先级队列并更新给定元素?

c++ - forward_iterator 概念的冗余?

c - 为什么模数 (%) 运算符适用于 char 但不适用于浮点类型?

c++ -::运算符必须与 tolower() 一起使用吗?

java - 如何获取任意整数数组并返回具有相同整数但不重复的数组