лекция ооп 23
.docxЛекция 23.05.2022
Class B
{
Char name[];
Public:
Void: put_name();
Void show_name();
}
Class D, public: B
{ char phone_name[];
Public:
Void put_phone();
Void show_phone();
Int main
B *p;
B B_ob;
D *dp;
D D_ob;
P = &B_ob;
P →put_name(_);
P→ &D_ob;
P→put_name(_);
Можно обратиться и к базовому и к производному
Class B
{ public:
Virtual void who(); virtual void who() = 0;
{cout << “B”;}
}
Class F1: public B
{ void who()
{Cout<<”F1”;}
}
Class F2:public B;
{ void who();
{cout <”F2”;}
Int main
B *p;
B B_ob;
F1 f1;
F2 f2;
P = &B_ob;
P →&f1;
P→who();
P→ &f2;
P→who();
}
Динамическое определение того, из какого экземпляра класса будет вызвана функция – полиморфизм
Class B
{ public:
Virtual void whо();
{cout << “B”;}
}
Class F1: public B
{ void who()
{Cout<<”F1”;}
}
Class F2:public B;
{ void who();
{cout <”F2”;}
Void show_who (B &r)
{
r.who();
}
Int main()
{
B b;
F1 f1;
F2 f2;
Show_who(b);
Show_who(f1);
Show_who(f2);
}
Class B
{ public:
Virtual void whо() = 0;
Virtual void A() = 0;
Virtual void B() = 0;
};