Я работал на примере для this answer но я забыл ввести return *this;
заключить мой оператор присваивания, так Val
«s оператор присваивания выглядит следующим образом:Оператор присваивания Возвращение
Val& operator= (const int _a) {a = _a; b = _a + fmod(b, 1.0F);}
Похоже, что это не должно , но gcc compiles and runs this code. Как это возможно? Это как функция main
, где есть подразумеваемый return
?
Отсутствует возвращение делает _не_ сделать программу плохо сформированной. Достижение конца этой функции без возврата ... делает. Тонкая разница, но ваша функция может генерировать исключение (например), и этот код будет абсолютно корректным. –
@AdrianoRepetti, если есть nitpicking, это тот. Я бы отредактировал, но поскольку вопрос все равно, я не вижу причин для :) – SergeyA