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

Класс TShape

Используются для получения непосредственного доступа извне к скрытым полям класса, то есть расширения интерфейса класса. | Object.print(); | Перегрузка стандартных операций. | Тип_возвращаемого_значения operator знак_операции | Перегрузка функций. | Наследование классов. | При наследовании некоторые имена | Наличие нескольких прямых базовых классов называют множественным наследованием. | При множественном наследовании один и тот же базовый класс может быть включен в производный класс одновременно несколько раз, причем и как виртуальный, и как не виртуальный. | Абстрактные классы |


Читайте также:
  1. A. Классический раухбир - Classic Rauchbier
  2. C. Классический американский пильзнер - Classic American Pilsner
  3. II Классификация ВПС
  4. III. Классификация проблем абонентов ТД.
  5. Ouml;д класс помалігӧн велӧдчысьлӧн позяна да вермана мында тӧдӧмлун да кужӧмлун
  6. Ouml;д класслы «Коми кыв» велöдчан небöг
  7. Ouml;д классын коми кыв велöдан колана небöгъяс

class TShape {

protected:

Int visible;

public:

TShape(int _vis): visible(_vis) {}

virtual ~TShape() {}

virtual void Show() = 0;

int IsVisible() const {

return visible; }};

Класс TPoint

class TPoint: public TShape {

private:

Int x, y;

public:

TPoint(int _x, int _y, int _vis):
TShape(_vis), x(_x), y(_y) {}

void Show() {

if (!visible) {

printf("%d %d ", x, y);

visible = 1; }}};

Класс TCircle

class TCircle: public TPoint {

private:

Int r;

public:

TCircle(int _x, int _y, int _r, int _vis):
TPoint(_x, _y, _vis), r(_r) {}

void Show() {

if (!visible) {

TPoint::Show();

printf("%d ", r);}}};

Классы и шаблоны.

Шаблон семейства классов: template <список_параметров_шаблона> определение_класса

Шаблон семейства классов определяет способ построения отдельных классов подобно тому, как класс определяет правила построения и формат отдельных объектов. В определении класса, входящего в шаблон, особую роль играет имя класса. Оно является не именем отдельного класса, а параметризованным именем семейства классов.

Следуя авторам языка и компилятора Си++, рассмотрим векторный класс (в число данных входит одномерный массив). Какой бы тип ни имели элементы массива (целый, вещественный, с двойной точностью и т.д.), в этом классе должны быть определены одни и те же базовые операции, например доступ к элементу по индексу и т.д. Если тип элементов вектора задавать как параметр шаблона класса, то система будет формировать вектор нужного типа (и соответствующий класс) при каждом определении конкретного объекта.

Следующий шаблон автоматически формирует классы векторов с указанными свойствами:

// TEMPLATE.VEC - шаблон векторов

template <class T> // T - параметр шаблона


Дата добавления: 2015-10-02; просмотров: 43 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Void f (int);| Bay Area Thrash

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