Я знаю, что оператор «+» должен что-то вернуть, и это имеет смысл для меня.Почему оператор присваивания возвращает что-нибудь для начала?
Но я не понимаю, почему мы возвращаем объект при перегрузке оператора «=». Например, посмотрите на следующее:
const Scene& Scene::operator=(const Scene &source){
if(this != &source){
count = source.count
}
return *this;
}
Не можем ли мы добиться такого же эффекта, просто используя это?
void Scene::operator=(const Scene &source){
if(this != &source){
count = source.count
}
}
Для таких вещей, как 'a = b = c;', не ошибочный 'if (a = b) {...' и оценивая значение, затем используя его в выражении в той же строке: 'a = b + (c = d); ' –