Язык С++ и программирование на нем. Рейзлин В.И. - 88 стр.

UptoLike

Составители: 

90
мента передается адрес этого объекта. В данном случае указатель типа
str*.
Внутри функции-члена класса можно явно использовать этот ука-
затель. Он всегда имеет имя this (ключевое слово).
Перед началом выполнения кода функции указатель this инициа-
лизируется значением адреса объекта, для которого вызвана данная
функция-член. Таким образом, приведенное выше определение функции
str::write() представляет собой сокращенную форму следующей записи:
void write(){
cout <<”Строка :”<<this ->string<<’\n’;
}
Отметим, что явное присваивание указателю this некоторого зна-
чения запрещено.
18.6. Статические функции-члены
Перед объявлением функции-члена класса можно поставить слу-
жебное слово static. Особенностью таких статических функций-членов
является следующее: как и к статическому данному-члену класса, к ней
можно обратиться еще до того, как в программе создан первый объект
такого класса. Статические функции-члены (компонентные функции)
позволяют получить доступ к частным статическим данным-членам
класса, не имея еще ни одного объекта данного типа в программе.
Для статической компонентной функции не определен указатель
this. Когда это необходимо, адрес объекта, для которого вызывается ста-
тическая функция-член, должен быть передан ей явно в виде аргумента.
Пример:
class prim{
int numb;
static stat;
public:
prim (int i) {
numb=i;
}
/* Далее статическая функция. Указатель this не определен и
выбор объекта осуществляется по явно переданному указателю.
Член stat не требует указателя на объект, так как он общий для
всех объектов класса prim.
*/
static void func (int i, prim *p = 0) {