Множественное наследование C++
Primary tabs
Следует понимать, что:
- Если вы порождаете класс из нескольких базовых классов, то получаете преимущества множественного наследования.
- При множественном наследовании производный класс получает атрибуты двух или более классов.
- При использовании множественного наследования для порождения класса конструктор производного класса должен вызвать конструкторы всех базовых классов.
- При порождении класса из производного класса вы создаете иерархию наследования (иерархию классов).
например - пусть у нас имеется два класса:
// описывает экран class computer_screen { public: computer_screen(char *, long, int, int); void show_screen(void); private: char type[32] ; long colors; int x_resolution; int y_resolution; }; // материнская плата class mother_board { public: mother_board(int, int, int); void show_mother_board(void); private: int processor; int speed; int RAM; };
унаследует черты обоих этих классов определив класс "компьютер":
class computer : public computer_screen, public mother_board { public: computer(char *, int, float, char *, long, int, int, int, int, int); void show_computer(void); private: char name[64]; int hard_disk; float floppy; }; // далее реализация конструктора снаружи класса // обязательно указываем базывые конструкторы computer::computer(char *name, int hard_disk, float floppy, char *screen, long colors, int x_res, int y_res, int processor, int speed, int RAM) : computer_screen(screen, colors, x_res, y_res), mother_board(processor, speed, ram) { strcpy(computer::name, name); computer::hard_disk = hard_disk; computer::floppy = floppy; }
источники:
http://programmersclub.ru/27/
- Log in to post comments
- 3797 reads