#include <iostream>
class MyClass
{
public:
MyClass(int a = 0) : skladnik(a) { std::cout << "Konstruktor\n"; }
MyClass(MyClass& wz) { skladnik = wz.skladnik; std::cout << "Konstruktor kopiujacy\n"; }
MyClass& operator=(const MyClass& wz) {
if (this != &wz) this->skladnik = wz.skladnik;
std::cout << "Operator przypisania\n";
return *this;
};
~MyClass() { std::cout << "Destruktor\n"; }
void wypisz() { std::cout << skladnik << "\n"; }
private:
int skladnik;
};
class MyClass2 : public MyClass
{
public:
MyClass2 (int a) : MyClass(a) {};
~MyClass2() {};
private:
};
int main()
{
MyClass2 obiekt1(10);
obiekt1.wypisz();
MyClass2 obiekt2 = obiekt1;
obiekt2.wypisz();
MyClass2 obiekt3(20);
obiekt1 = obiekt3;
obiekt1.wypisz();
}
Operator przypisania z klasy bazowej jest uruchamiany. Dlaczego?