Главная->Інформатика та програмування->Содержание->Доступ к компонентным данным через указатель this

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 11) онлайн

Доступ к компонентным данным через указатель this

Когда вы вызываете какой-либо метод, значением указателя this становится ад-

рес объекта, для которого этот метод вызван. Указатель this может интерпрети-

роваться, как любой другой указатель на объект, соответственно, его можно ис-

пользовать для получения доступа к данным объекта, на который он ссылается.

Это продемонстрировано в программе DOTHIS.

 

Листинг 11.20. Программа DOTHIS

// dothis.cpp

// как указатель this ссылается на данные

#include <iostream>

using namespace std;

///////////////////////////////////////////////////////////

class what

  {

  private:

    int alpha;

  public:

    void tester()

      {

      this->alpha = 11;    //то же,что alpha = 11;

      cout << this->alpha; //то же, что cout <<

                           //alpha;

      }

  };

///////////////////////////////////////////////////////////

int main()

{

  what w;

  w.tester();

  cout << endl;

  return 0;

}

Эта программа просто выводит на экран значение 11. Обратите внимание,

каким образом метод tester() получает доступ к переменной alpha:

 

this -> alpha

Это точно то же самое, что прямая ссылка на alpha. Такой синтаксис обра-

батывается без каких-либо проблем, но в нем на самом деле никакого иного

смысла нет, кроме единственного — показать, что указатель this действительно

ссылается на объект.

 

26