История изменений
Исправление soomrack, (текущая версия) :
А еще можно написать так, это понятней с т.з. того, что делает код, если нужно только скопировать данные из родителя (но все равно, это очень плохой стиль):
#include <iostream>
class Parent {
public:
int id;
public:
Parent() { id = 1; };
Parent(int number) { id = number; };
Parent& operator=(Parent &source) { id = source.id; return *this; };
};
class Child : public Parent {
public:
Child() {};
// Child& operator=(Parent &source) { Parent::operator=(source); return *this; };
};
int main() {
Parent P(10);
std::cout << "Parent.id = " << P.id << std::endl;
Child C;
std::cout << "Child.id = " << C.id << std::endl;
*((Parent *)&C) = P;
std::cout << "Child.id = " << C.id << std::endl;
}
Исходная версия soomrack, :
А еще можно написать так, это понятней с т.з. того, что делает код, если нужно только скопировать данные из родителя:
#include <iostream>
class Parent {
public:
int id;
public:
Parent() { id = 1; };
Parent(int number) { id = number; };
Parent& operator=(Parent &source) { id = source.id; return *this; };
};
class Child : public Parent {
public:
Child() {};
// Child& operator=(Parent &source) { Parent::operator=(source); return *this; };
};
int main() {
Parent P(10);
std::cout << "Parent.id = " << P.id << std::endl;
Child C;
std::cout << "Child.id = " << C.id << std::endl;
*((Parent *)&C) = P;
std::cout << "Child.id = " << C.id << std::endl;
}