АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология

Пример 1. Каждый объект в C++ содержит специальный указатель с именем this, который автоматически создается самим компилятором и указывает на текущий объект

Прочитайте:
  1. Альтернирующие синдромы – примеры, этиология, клиническая симптоматика.
  2. Внутривенное введение лекарственного вещества на примере эуфиллина
  3. Генная инженерия и современная биотехнология. Примеры использования в микробиологической практике.
  4. Ежегодно на земном шаре опухоли впервые выявляются примерно у 6000000 человек.
  5. Запомните примеры моногенных заболеваний, передающихся по аутосомно-доминантному, аутосомно-рецессивному и Х-сцепленному рецессивному типам.
  6. Иллюстрация игр № 1—15 примерами
  7. Клинический пример
  8. Клинический пример
  9. Клинический пример
  10. Клинический пример

Лекция №4

УКАЗАТЕЛЬ THIS. INLINE-ФУНКЦИИ.

КОНСТАНТНЫЕ И СТАТИЧЕСКИЕ ДАННЫЕ И ФУНКЦИИ.

Указатель this

Каждый объект в C++ содержит специальный указатель с именем this, который автоматически создается самим компилятором и указывает на текущий объект. Типом this является Т*, где Т – тип класса текущего объекта. Поскольку указатель this определен в классе, область его действия – класс, в котором он определен. Фактически this является скрытым параметром класса, добавляемым самим компилятором к его определению. При вызове обычной функции-члена класса ей передается указатель this так, как если бы он был первым аргументом. Таким образом, вызов функции-члена

ObjName. FuncName (par1, par2);

компилятор трактует так:

ObjName. FuncName (& ObjName, parl, par2);

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

Пример 1.

# include <iostream.h>

# include <string.h>

class Prim

{

public:

Prim (char *);

void Privet ();

char metka [20];

};

 

# include "Prim.h"

Prim:: Prim (char * name)

{

strcpy (metka, name);

Privet (); // Все три

this -> Privet (); // оператора

(* this). Privet (); // эквивалентны

}

 

void Prim:: Privet ()

{

cout <<"Hello, "<< metka << endl; // Оба оператора

cout <<"Hello, "<< this -> metka << endl; // эквивалентны

}

 

int main ()

{

Prim ob ("dear!");

}


Дата добавления: 2015-09-27 | Просмотры: 352 | Нарушение авторских прав







При использовании материала ссылка на сайт medlec.org обязательна! (0.003 сек.)