<分区>
我正在为 this answer 做一个例子但是我忘记输入 return *this;
来结束我的赋值运算符,所以 Val
的赋值运算符看起来像这样:
Val& operator= (const int _a) {a = _a; b = _a + fmod(b, 1.0F);}
看起来不应该,但是gcc compiles and runs this code .这怎么可能?这是否类似于隐含的 return
的 main
函数?
<分区>
我正在为 this answer 做一个例子但是我忘记输入 return *this;
来结束我的赋值运算符,所以 Val
的赋值运算符看起来像这样:
Val& operator= (const int _a) {a = _a; b = _a + fmod(b, 1.0F);}
看起来不应该,但是gcc compiles and runs this code .这怎么可能?这是否类似于隐含的 return
的 main
函数?
最佳答案
不,没有隐含的返回,但在默认模式下,g++ 不会将丢失的 return
报告为错误。原因是缺少 return
会使程序格式错误,而标准不要求任何格式错误的程序报告。
您需要确保您的 g++ 始终具有以下参数:-Wall -Wextra -Werror -pedantic
。这将确保 gcc 会报告类似的错误以及更多错误。
关于c++ - 赋值运算符返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36720568/