При выполнении домашнего задания мне трудно понять поведение, когда основной класс создает два объекта одного класса в одной строке следующим образом. Обратите внимание, что объект присваивания для класса ведет себя как int:
main () {
MyClass x,y = 5;
cout << "x = " << x << endl; // outputs x = 0...why not 5???
cout << "y = " << y << endl; // outputs y = 5
}
и вот определение класса заголовочного файла:
class MyClass {
public:
MyClass(int initValue = 0); //constructor
operator int() {return myValue}; //conversion operator to int
private:
int myValue;
}
и, наконец, мой исходный файл:
#include "MyClass.h"
MyClass::MyClass(int initValue) {
myValue = initValue;
}
Почему x не инициализируется со значением 5, как y?