赋值运算符 Return
Assignment Operator Return
我正在为 编写示例,但我忘记键入 return *this;
来结束我的赋值运算符,因此 Val
的赋值运算符如下所示:
Val& operator= (const int _a) {a = _a; b = _a + fmod(b, 1.0F);}
似乎不应该,但是 gcc compiles and runs this code。这怎么可能?这是否类似于隐含的 return
的 main
函数?
不,没有隐含的 return,但在默认模式下,g++ 不会将丢失的 return
报告为错误。原因是缺少 return
会使程序格式错误,而标准不要求任何格式错误的程序报告。
您需要确保您的 g++ 始终具有以下参数:-Wall -Wextra -Werror -pedantic
。这将确保 gcc 会报告类似的错误以及更多错误。
我正在为 return *this;
来结束我的赋值运算符,因此 Val
的赋值运算符如下所示:
Val& operator= (const int _a) {a = _a; b = _a + fmod(b, 1.0F);}
似乎不应该,但是 gcc compiles and runs this code。这怎么可能?这是否类似于隐含的 return
的 main
函数?
不,没有隐含的 return,但在默认模式下,g++ 不会将丢失的 return
报告为错误。原因是缺少 return
会使程序格式错误,而标准不要求任何格式错误的程序报告。
您需要确保您的 g++ 始终具有以下参数:-Wall -Wextra -Werror -pedantic
。这将确保 gcc 会报告类似的错误以及更多错误。