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, а не отдельный объект класса.

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

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

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

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

Из книги Linux From Scratch автора Бикманс Герард

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


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

Из книги Журнал «Компьютерра» № 24 от 26 июня 2007 года автора Журнал «Компьютерра»

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


Знаете ли вы себя?

Из книги Как найти высокооплачиваемую работу с помощью Internet автора Рудинштейн Марк


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

Из книги Getting Real (на русском) [вычитывается] автора 37signals

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


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

Из книги Все под контролем: Кто и как следит за тобой автора Гарфинкель Симеон

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


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

Из книги Цифровой журнал «Компьютерра» № 7 [9.2.2010 — 16.2.2010] автора Журнал «Компьютерра»

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


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

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

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


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

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

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


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

Из книги Справочник по PHP автора

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


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

Из книги Ководство автора Лебедев Артём Андреевич

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


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

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

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


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

Из книги Яндекс для всех автора Абрамзон М. Г.

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


Покажи себя клиентам

Из книги Быстрые деньги в Интернете [50 способов заработать, сидя дома у компьютера] автора Парабеллум Андрей Алексеевич


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

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

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


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

Из книги Цифровая фотография. Трюки и эффекты автора Гурский Юрий Анатольевич

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