Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Управление видимостью членов класса и доступам к элементам объекта




Уровни доступа к базовому классу

Те же ключевые слова private, public и protected используются для указания уровня доступа к базовому классу. До этого мы писали:

class Employee: public Person

и выше говорилось, что в этом случае у производного класса будет доступ к публичным полям и методам базового класса. Такой тип наследования можно назвать открытым. В случае закрытого (private) и защищјнного (protected) наследования ситуация будет другой, что показано

в таблице:

Class C { private: int a; protected: int b; public: int c; }; Class C1: public C { недоступно   доступно как protected доступно как public }; Class C2: protected C { недоступно   доступно как protected доступно как protected }; Class C3: private C { недоступно   доступно как private доступно как private };

 

Легко запомнить правило: приватные члены базового класса в производных классах недоступны; остальные члены доступны с минимальным из двух уровней доступа: их уровня доступа в базовом классе и уровня доступа к базовому классу при наследовании. Если уровень доступа к базовому классу не указан, то для структур по умолчанию используется уровень public, а для классов private.

 

17. Ссылка на себя //this

В функции-члене можно непосредственно использовать имена членов того объекта, для которого она была вызвана:

class X {

int m;

public:

int readm() { return m; }

};

void f(X aa, X bb)

{

int a = aa.readm();

int b = bb.readm();

//...

}

При первом вызове readm() m обозначает aa.m, а при втором - bb.m.

У функции-члена есть дополнительный скрытый параметр, являющийся указателем на объект, для которого вызывалась функция. Можно явно использовать этот скрытый параметр под именем this. Считается, что в каждой функции-члене класса X указатель this описан неявно как

X *const this;

и инициализируется, чтобы указывать на объект, для которого функция-член вызывалась. Этот указатель нельзя изменять, поскольку он постоянный (*const). Явно описать его тоже нельзя, т.к. this - это служебное слово. Можно дать эквивалентное описание класса X:

class X {

int m;

public:

int readm() { return this->m; }

};

Для обращения к членам использовать this излишне. В основном this используется в функциях-членах, непосредственно работающих с указателями.

 

Освобождение памяти от лишних объектов

delete и ну ты понел.

 

Порядок выполнения конструкторов и деструкторов

Конструкторы при инициализации (создание).

Деструкторы при деинициализации (уничтожение).

 

 

 

 





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 483 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Лучшая месть – огромный успех. © Фрэнк Синатра
==> читать все изречения...

2205 - | 2096 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.