Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

08 наследование 2

.pdf
Скачиваний:
13
Добавлен:
27.03.2015
Размер:
349 Кб
Скачать

08 – 11

6)Конструктор БК → Конструкторы

композитных ДЭ в ПК→ Конструктор ПК

7)Конструкторы композитных ДЭ в ПК

8)Множественное наследование

ПОВЕДЕНИЕ ДЕСТРУКТОРОВ:

08 – 12

Пример:

//БК; представляет точку

//с координатами (x,y)

class Point { protected:

int x, y; public:

Point(int=0, int=0); ~Point();

};

08 – 13

Point::Point(int a, int b)

{

x = a; y = b;

cout << ”Конструктор Point:

<<’[’ << x << ”,” << y

<<’]’ << endl;

}

08 – 14

Point::~Point()

{

cout << ”Деструктор Point:

<<’[’ << x << ”,” << y

<<’]’ << endl;

}

08 – 15

//ПК; представляет круг с центром

//в точке (x,y) и радиусом radius

class Circle: public Point { protected:

float radius; public:

Circle(float=0.0, int=0, int=0); ~Circle();

};

08 – 16

//Конструктор ПК c явным вызовом

//конструктора БК

Circle::Circle(float r, int a,

int b): Point(a, b)

{

radius = r;

cout << ”Конструктор Circle:

<<радиус = ” << radius

<<’ ’ << ’[’ << x << ”,”

<<y << ’]’ << endl;

}

08 – 17

Circle::~Circle()

{

cout << ”Деструктор Circle:

<<радиус = ” << radius

<<’ ’ << ’[’ << x << ”,”

<<y << ’]’ << endl;

}

08 – 18

//Демонстрация вызовов конструктора и

//деструктора БК и ПК

int main()

{

{

Point p(1, 2);

//Здесь скобки { }, чтобы

//деструктор вызывался сразу,

//а не в конце функции main()

}

08 – 19

Circle circle1(4.5, 7, 9); Circle circle2(10, 5, 5); return 0;

}

08 – 20

Конструктор Point: [1,2] Десттруктор Point: [1,2] Конструктор Point: [7,9]

Конструктор Circle: радиус = 4.5 [7,9] Конструктор Point: [5,5]

Конструктор Circle: радиус = 10 [5,5] Десттруктор Circle: радиус = 10 [5,5] Десттруктор Point: [5,5]

Десттруктор Circle: радиус = 4.5 [7,9] Десттруктор Point: [7,9]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]