Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Int y ;. При создании объекта классаВ :

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 | Нарушение авторских прав


Читайте в этой же книге: Void main ( ) | Множественное наследование. Виртуальные базовые классы | Void move ( int xn, int yn) | spotelli |
<== предыдущая страница | следующая страница ==>
Int y ;| Putimage(x-rad, y-rad, pspot, XOR_PUT);

mybiblioteka.su - 2015-2024 год. (0.007 сек.)