|
public:
B (int y1=0) { y = y1; } };
При создании объекта класса В:
В b (5);
значение 5 присвоится y, а переменные класса А получат значения по умолчанию из конструктора (3).
- Если в производном классе В отсутствуют собственные данные, и нас устраивают значения по умолчанию класса А, то конструктор в классе В вообще не нужен, при создании объекта производного класса:
B b;
в объекте b данные базового класса A инициированы значениями по умолчанию из конструктора базового класса (3).
- Если в производном классе нет своих данных, но при создании объектов
производного класса нас не устраивают значения по умолчанию из конструктора базового класса. Тогда в конструкторе класса В нужно вызвать конструктор А, чтобы передать ему нужные аргументы:
class B: public A {
public:
B (int ax1, int ax2): A (ax1, ax2) { }
};
При создании объекта производного класса:
B b (15,20);
передаваемые параметры инициализируют данные базового класса.
Приведенные примеры естественно не рассматривают всех возможных ситуаций, напр., если надо инициализировать в конструкторе производного класса не все данные базового класса:
B(int ax1): A(ax1) { } …
B n (37); // в создаваемом объекте 37 присвоится x1, а x2 будет иметь
// значение поумолчанию 5
Или не всем данным в конструкторе базового класса даны умалчиваемые значения:
…
A (int ax1, int ax2 =0) {x1 =ax1; x2 = ax2; }
…
B (int ax1): A (ax1) { }
…
B b (11) // x1 присвоится 11, а x2 инициируется 0.
и т. д.
Класс “точка на графическом экране”. Производный класс –“пятно”
// следующее описание класса point находится в модуле point.h
#ifndef PH
#define PH 1
class point { // точка на экране дисплея
protected:
int x, y; // защищенные компонентные данные
public: // общедоступные компонентные функции
point (int xx=0, int yy =0); // прототип конструктора
// с умалчиваемыми значениями
int& GetX (); // функция возвращает координату x
int& GetY (); // функция возвращает координату y
void show (void); // прототип функции изображения точки
void move (int xo=0, int yo =0); // прототип функции
// перемещения точки с умалчиваемыми значениями
// по умолчанию перемещает в нулевые координаты
private: // собственная функция класса
void hide (); // прототип функции, убирающей точку с экрана
};
#endif
// внешнее определение методам класса находится в модуле point.cpp
#ifndef PC
#define PC 1
# include <graphics.h> // подключение графической библиотеки
# include “point.h” //необходимо включить описание класса point
point::point(int x1, int y1) // определение конструктора
{ x = x1; y = y1; }
void point:: show (void)
{
Дата добавления: 2015-07-15; просмотров: 92 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Int y ; | | | Putimage(x-rad, y-rad, pspot, XOR_PUT); |