3 class A public int x int y
Иерархия классов. Пример № 3 class A { public: int x; int y; void Init(int px, int py) ; }; main(void) { B pb; A pa; pa. Init(10, 20); class B: public A { public: int z; }; void A: : Init(int px, int py) { x=px; y=py; }; pb. Init(1, 2); pb. z=3; … } : : - оператор разрешения области видимости
Иерархия классов. Пример № 3 class A { public: int x; int y; void Init(int px, int py) ; }; class B: public A { public: int z; }; void Init(int px, int py, int pz); void A: : Init(int px, int py) { x=px; y=py; }; void B: : Init(int px, int py, int pz) { x=px; y=py; z=pz; }; int main(void) { B pb; pb. Init(10, 20, 30); … }
Иерархия классов. Пример № 3 class A { public: int x; int y; void Init(int px, int py) ; }; class B: public A { public: int z; void Init(int px, int py, int pz) ; }; void A: : Init(int px, int py) { x=px; y=py; }; void B: : Init(int px, int py, int pz) { A: : Init(px, py); z=pz; }; main(void) { B pb; pb. Init(10, 20, 30); … }
Пример № 2 class Queue{ protected: int q[100]; int bq, endq; public: void Init(void) ; void qput(int m); int qget(void); }; void Queue: : Init(void) { bq=endq=0; } int main( ) { Queue obj 1, obj 2; Queue *pobj; obj 1. Init(); obj 2. Init(); pobj->Init(); … } Queue: : Init – полное имя функции
Пример № 4 class Queue{ protected: int q[100]; int bq, endq; public: void Init(void) ; void qput(int m); int qget(void); }; class Queue 1: public Queue { private: int sum; public: int Get_Sum(void); void Show_Sum(void) ; }; int Queue 1: : Get_Sum(void) { sum=0; for (int i=bq; i<endq; i++) sum+=q[i]; return sum; } void Queue 1: : Show_Sum(void) { cout<<“сумма=”<<sum<<“n” }
Пример № 5 class Queue{ protected: int q[100]; int bq, endq; public: void Init(void) ; void qput(int m); int qget(void); }; class Queue 1: public Queue { private: int sum; public: int Get_Sum(void); void Show_Sum(void) ; void Init(psum) {Queue: : Init(); sum=psum; }; }; void Queue: : Init(void) { bq=endq=0; }; int Queue 1: : Get_Sum(void) { sum=0; for (int i=bq; i<endq; i++) sum+=q[i]; return sum; } void Queue 1: : Show_Sum(void) { cout<<“сумма=”<<sum<<“n” }
Подставляемые (inline) функции class A { public: int x; int y; void Init(int px, int py) { x=px; y=py; }; }; class A { public: int x; int y; void Init(int px, int py) ; }; void A: : Init(int px, int py) { x=px; y=py; };
Подставляемые (inline) функции inline int f(void) { … } class Z: public Y { protected: int z; public: … }; void make_z(void) {z=x+y; }; void Show(void) { cout<<z<<“ n ”; }
Наследование классов class Х{ private: int i; int j; public: void put_ij(int m, int n); int get_ij(void); }; class Y: public X { private: int k; public: int get_k(void); void make_k(void) {k=i+j; } }; class Х{ protected: int i; int j; public: void put_ij(int m, int n); int get_ij(void); }; class Y: public X { private: int k; public: int get_k(void); void make_k(void) {k=i+j; } };
- Slides: 18