Добрый день!
Допустим, есть некий класс X, в общем случае производный от каких-то еще классов. Как определить можно ли объекты класса X присваивать друг другу:
X f();
X x;
x = f();
Правильно ли я понимаю, что для этого нужно просмотреть определение класса X и всех его базовых классов и убедиться, что в каждом из них имеется либо реализованный operator= либо корректно работающий дефолтный operator= ?
+ Аналогичный вопрос про конструирование копированием:
void g(X);
X x;
g(x);
Объясните, пожалуйста.