5.4.2 Уточнение* Имени Члена

5.4.2 Уточнение* Имени Члена

– * Иногда называется также квалификацией. (прим. перев.)

Иногда полезно делать явное различие между именами члнов класса и прочими именами. Для этого используется операция ::, «разрешения области видимости»:

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

В x::setm() имя параметра m прячет член m, поэтому единственный способ сослаться на член – это использовать его уточненное имя x::m. Операнд в левой части :: должен быть именем класса.

Имя с префиксом :: (просто) должно быть глобальным имнем. Это особенно полезно для того, чтобы можно было исползовать часто употребимые имена вроде read, put и open как имена функций членов, не теряя при этом возможности обращатся к той версии функции, которая не является членом. Например:

class my_file (* // ... public: int open(char*, char*); *);

int my_file::open(char* name, char* spec) (* // ... if (::open(name,flag))(*//использовать open() из UNIX(2) // ... *) // ... *)

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

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

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

База данных без имени

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

База данных без имени Много лет назад мы решили интегрировать мощную реляционную базу данных в каждую System/38. Затем эта идея перекочевала и в AS/400. Мы считали, что способность полнофункциональной системы управления базой данных (СУБД) эффективно и надежно обрабатывать


Определение имени узла

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

Определение имени узла При использовании многих протоколов семейства TCP/IP необходимо, чтобы к компьютеру можно было обращаться по имени. Для того чтобы упростить настройку отдельных программ, в Linux содержится специальная утилита hostname, позволяющая определить имя узла.


Получение доменного имени

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

Получение доменного имени Задачи запуска сервера DNS и получения доменного имени тесно связаны между собой. Без доменного имени сервер DNS не сможет обслуживать внешних пользователей, так как ссылка на него должна присутствовать на вышестоящем сервере. На заметку Если вы


12.14.3 Дополнение имени

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

12.14.3 Дополнение имени Имя, которое не заканчивается точкой, дополняется именем домена для зоны, например fishfood.com. Таким образом, в этом файле ns будет соответствовать


2. Профессиональная деятельность члена вашей семьи

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

2. Профессиональная деятельность члена вашей семьи Если вы не работаете на данный момент или вы – молодой человек без опыта работы, для вас следующий пункт. Возможно, кто-то из вашей семьи что-то очень хорошо делает. Например, ваш брат или сестра – фотограф, финансовый


8.5. Гарантия единственности копии переменной-члена

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

8.5. Гарантия единственности копии переменной-члена ПроблемаИмеется переменная-член, у которой должен быть только один экземпляр независимо от числа создаваемых экземпляров класса. Этот тип переменных-членов обычно называется статическими членами или переменными


8.5.4. Определение члена пространства имен

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

8.5.4. Определение члена пространства имен Мы видели, что определение члена пространства имен может появиться внутри определения самого пространства. Например, класс matrix и константа pi появляются внутри вложенного пространства имен MatrixLib, а определения функций operator+() и


13.6.1. Тип члена класса

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

13.6.1. Тип члена класса Указателю на функцию нельзя присвоить адрес функции-члена, даже если типы возвращаемых значений и списки параметров полностью совпадают. Например, переменная pfi – это указатель на функцию без параметров, которая возвращает значение типа int:int


14.6.1. Инициализация члена, являющегося объектом класса

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

14.6.1. Инициализация члена, являющегося объектом класса Что произойдет, если в объявлении _name заменить C-строку на тип класса string? Как это повлияет на почленную инициализацию по умолчанию? Как надо будет изменить явный копирующий конструктор? Мы ответим на эти вопросы в


Получение имени игрока

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

Получение имени игрока Игрок вводит свое имя в текстовое поле формы highScore. Чтобы получить доступ к имени пользователя во время игры, необходимо иметь доступ к экземпляру формы HighScore. В классе HighScore надо создать свойство, с помощью которого можно получить введенное


5.4.2 Уточнение* Имени Члена

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

5.4.2 Уточнение* Имени Члена – * Иногда называется также квалификацией. (прим. перев.)Иногда полезно делать явное различие между именами члнов класса и прочими именами. Для этого используется операция ::, «разрешения области видимости»:class x (* int m; public: int readm() (* return x::m; *) void setm(int


28.2. Уточнение текущего уровня выполнения

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

28.2. Уточнение текущего уровня выполнения В этой главе не рассматриваются вопросы системного администрирования, однако shell–программист должен знать не только принципы функционирования сценариев rc.scripts, но также принципы их совмещения с каталогами конфигурации уровня


Стоимость имени в Нью-Джерси

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

Стоимость имени в Нью-Джерси Возможно, Кэтлит прав. Конечно, Ассоциация прямого маркетинга устроила аналогичную общественную кампанию с высокими ставками в 1996 году, когда сенатор от Нью-Джерси Ричард Коди [Richard 3. Cody] пытался провести билль, сделавший бы незаконной продажу