Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по технологиям программирования.pdf
Скачиваний:
53
Добавлен:
02.06.2015
Размер:
4.73 Mб
Скачать

Ограничения доступа

Private

 

Public

 

Protected

 

 

 

 

 

Член-данные и член-

Член-данные и член-

Член-данные и член-

функции

доступны

функции доступны

функции

доступны

только через член-

из любого

места

только через

член-

функции

данного

программы,

где

функции

данного

класса.

 

имеется

 

класса

и

его

 

 

представитель

 

потомков.

 

 

 

 

класса.

 

 

 

 

 

 

 

 

 

 

 

Пример использования класса

classdate

data::set(intm, intd, inty)

{private:

{ month=m;

int month, day, year;

day=d;

public:

year=y;

void set(int, int, int);

}

void out();

data::out()

date(int, int, int);

{cout << day << " " << month

~date()

<< " " << year;

} today;

}

date::date(int m=0, intd=1, int

y=1998)

{month = m;

 

day = d;

 

year = y;

today.set(4,4,2011);

}

today.out();

Основные свойства и правила использования конструкторов:

конструкторимеет то же имя, что и класс, в котором он объявляется;

конструкторне возвращаетзначения (дажетипаvoid);

конструкторне наследуется в производныхклассах.

конструктор может иметьпараметры, заданныепоумолчанию;

конструктор - этофункция, ноего нельзяобъявитьсключевым словомvirtиal;

невозможнополучить в программе адрес конструктора;

если конструкторнезадан в программе, тоон будетaвтоматически сгенерирован;

конструкторвызываетсяавтоматическитолькопри описании объекта;

объект, содержащий конструктор, нельзявключитьв виде компонентав объединение;

конструкторкласса Х не может иметь параметр типа Х, может иметь параметр ссылку на объект типаХ, в этомслучае он называется конструкторомдля копирования (соруconstrиctor)

класса Х.

Основные свойства и правила использования деструкторов:

деструктор имееттожесамое имя,чтои класс, в которомон объявляется, с префиксом ~ (тильдой);

деструкторневозвращаетзначения ;

деструкторне наследуется в производныхклассах;

производныйкласс можетвызватьдеструкторыдляего базовых классов;

деструктор неимеетпараметров;

класс можетиметьтолькоодиндеструктор;

деструктор - этофункция, и он можетбыть виртуальным;

невозможнополучитьв программеадресдеструктор);

еслидеструктор незадан в программе, тоон будетавтоматически сгенерирован компилятором;

деструктор можновызватьтакже, какобычнуюфункцию, например:

date *my_day; my_day->date::~date().

деструктор вызываетсяавтоматически при разрушении объекта.

Области видимости для

классов

int x= 2; class Example

{

void f () {x = 0;} short x

};

void f () {::x = 0;}