5.2.3 Ссылки на Себя

5.2.3 Ссылки на Себя

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

class x (* int m; public: int readm() (* return m; *) *);

x aa; x bb;

void f() (* int a = aa.readm(); int b = bb.readm(); // ... *)

В первом вызове члена member() m относится к aa.m, а во втором – к bb.m.

Указатель на объект, для которого вызвана функция член, является скрытым параметром функции. На этот неявный параметр можно ссылаться явно как на this. В каждой функции класса x указатель this неявно описан как

x* this;

и инициализирован так, что он указывает на объект, для которого была вызвана функция член. this не может быть описан явно, так как это ключевое слово. Класс x можно эквивалентным образом описать так:

class x (* int m; public: int readm() (* return this-»m; *) *);

При ссылке на члены использование this излишне. Главным образом this используется при написании функций членов, котрые манипулируют непосредственно указателями. Типичный пример этого – функция, вставляющая звено в дважды связанный список:

class dlink (* dlink* pre; // предшествующий dlink* suc; // следующий public: void append(dlink*); // ... *);

void dlink::append(dlink* p) (* p-»suc = suc; // то есть, p-»suc = this-»suc p-»pre = this; // явное использование this suc-»pre = p; // то есть, this-»suc-»pre = p suc = p; // то есть, this-»suc = p *)

dlink* list_head;

void f(dlink*a, dlink *b) (* // ... list_head-»append(a); list_head-»append(b); *)

Цепочки такой общей природы являются основой для списквых классов, которые описываются в Главе 7. Чтобы присоеднить звено к списку необходимо обновить объекты, на которые указывают указатели this, pre и suc (текущий, предыдущий и последующий). Все они типа dlink, поэтому функция член dlink::append() имеет к ним доступ. Единицей защиты в С++ яляется class, а не отдельный объект класса.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

10.4.5. Уничтожение процессом самого себя

Из книги автора

10.4.5. Уничтожение процессом самого себя Процессы прерывают себя вызовом либо exit(), либо _exit(). Когда функция процесса main() возвращает управление, стандартная библиотека С вызывает exit() со значением, возвращаемым main() в качестве параметра.void exit(int exitCode);void _exit(int exitCode);Две формы,


Символические ссылки. Жесткие ссылки.

Из книги автора

Символические ссылки. Жесткие ссылки. Немного теорииВ системах Unix довольно часто возникает необходимость иметь для одного и того же файла или каталога разные имена. При этом одно из имен логично назвать основным, а все другие - его псевдонимами. В терминологии Unix такие


Вписываем себя в пользователи LFS

Из книги автора

Вписываем себя в пользователи LFS Хотите, что бы вас посчитали как пользователя LFS – загляните на страницу счетчика http://linuxfromscratch.org/cgi-bin/lfscounter.cgi и зарегистрируйтесь как пользователь LFS. Введите свое имя и версию вашей системы , которую вы создали и возможно будете


8.4.1. Поздравь себя

Из книги автора

8.4.1. Поздравь себя Начнем с того, как найти открытку. На главной странице проекта приведены в виде "тучи" (как и в поиске по блогам) названия наиболее популярных разделов. Если здесь есть то, что вас интересует, — щелкайте на названии и переходите к следующему этапу, этапу


§ 75. Про дом и про ссылки на самого себя

Из книги автора

§ 75. Про дом и про ссылки на самого себя — Друг! У вас какая система? Разрешите взглянуть… — Система обычная. Нажал на кнопку — и дома. «Кин-Дза-Дза» 8 ноября 2001Метафора дома появилась в гипертекстовых системах задолго до всемирной паутины. В те времена пиктограммой


Ссылающиеся на себя отношения

Из книги автора

Ссылающиеся на себя отношения Если ваша модель имеет сущность, у которой первичный ключ ссылается на внешний ключ, находящийся в той же сущности, то вы имеете ссылающееся на себя отношение, как показано на рис. 17.4. Рис. 17.4. Ссылающееся на себя отношениеЭто классическая


Финансируйте себя сами

Из книги автора

Финансируйте себя сами Деньги извне — план «B»Целью многих стартапов является привлечение денежных средств инвесторов. Но помните, если вы принимаете помощь инвесторов, вы несёте ответственность перед ними. Ожидания от стартапа вырастут. Инвесторы довольно быстро


ОПЫТЫ: Штурвал на себя

Из книги автора

ОПЫТЫ: Штурвал на себя Автор: Юрий Смирнов smir@kvidex ruАвтор, в совершенстве освоивший джипы и танки, попробовал подняться в небо, но выяснил, что для успешных полетов рожденным ползать нужно пройти дополнительную подготовку.Когда я попробовал на даче поднять в воздух


Инвестиции в себя Валерия Чернецова

Из книги автора

Инвестиции в себя Валерия Чернецова Сегодня хотелось бы поговорить о пользе дополнительного образования и о том, как участники рынка труда оценивают важность подобной инвестиции.Резюме, размещенные в базах job-порталов, поражают ассортиментом дипломов о высшем


Сними себя сам

Из книги автора

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


Глава 10 Настраиваем Windows «под себя»

Из книги автора

Глава 10 Настраиваем Windows «под себя» 10.1. Какой вид панели управления подойдет вам Панель управления, как явствует из ее названия, используется для настройки всех параметров вашей системы. Она содержит апплеты, каждый из которых используется для настройки тех или иных


Ссылка на себя

Из книги автора

Ссылка на себя Ничто не препятствует объекту O1 в определенный момент выполнения системы содержать ссылку, присоединенную к самому O1. Такая ссылка на себя может быть косвенной. В ситуации на рис.8.7 объект, имеющий значением поля name: "Almaviva", сам является своим лендлордом


Право на самого себя

Из книги автора

Право на самого себя На пороге XXI века кажется невозможной ситуация, когда человеку отказывают в доступе к своим собственным медицинским данным. Действительно, 96 % американцев считают право на получение копии собственных медицинских данных важным, а 84 % – «очень