#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();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgTXlDbGFzcwp7CnB1YmxpYzoKCU15Q2xhc3MoaW50IGEgPSAwKSA6IHNrbGFkbmlrKGEpIHsgc3RkOjpjb3V0IDw8ICJLb25zdHJ1a3RvclxuIjsgfQoJTXlDbGFzcyhNeUNsYXNzJiB3eikgeyBza2xhZG5payA9IHd6LnNrbGFkbmlrOyBzdGQ6OmNvdXQgPDwgIktvbnN0cnVrdG9yIGtvcGl1amFjeVxuIjsgfQoJTXlDbGFzcyYgb3BlcmF0b3I9KGNvbnN0IE15Q2xhc3MmIHd6KSB7CgkJaWYgKHRoaXMgIT0gJnd6KSB0aGlzLT5za2xhZG5payA9IHd6LnNrbGFkbmlrOwoJCXN0ZDo6Y291dCA8PCAiT3BlcmF0b3IgcHJ6eXBpc2FuaWFcbiI7CgkJcmV0dXJuICp0aGlzOwoJfTsKCX5NeUNsYXNzKCkgeyBzdGQ6OmNvdXQgPDwgIkRlc3RydWt0b3JcbiI7IH0KCXZvaWQgd3lwaXN6KCkgeyBzdGQ6OmNvdXQgPDwgc2tsYWRuaWsgPDwgIlxuIjsgfQpwcml2YXRlOgoJaW50IHNrbGFkbmlrOwp9OwoKY2xhc3MgTXlDbGFzczIgOiBwdWJsaWMgTXlDbGFzcwp7CnB1YmxpYzoKCU15Q2xhc3MyIChpbnQgYSkgOiBNeUNsYXNzKGEpIHsgfTsKCX5NeUNsYXNzMigpIHt9Owpwcml2YXRlOgp9OwoKCgppbnQgbWFpbigpCnsKCU15Q2xhc3MyIG9iaWVrdDEoMTApOwoJb2JpZWt0MS53eXBpc3ooKTsKCU15Q2xhc3MyIG9iaWVrdDIgPSBvYmlla3QxOwoJb2JpZWt0Mi53eXBpc3ooKTsKCU15Q2xhc3MyIG9iaWVrdDMoMjApOwoJb2JpZWt0MSA9IG9iaWVrdDM7CglvYmlla3QxLnd5cGlzeigpOwp9Cg==