Множественное наследование 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
- 4185 reads