67201

Вказівник this

Лекция

Информатика, кибернетика и программирование

Під час кожного виклику функції-члена класу їй автоматично передається вказівник на об'єкт, який іменується ключовим словом this, для якого викликається ця функція. Вказівник this – це неявний параметр, який приймається всіма функціями-членами класу.

Украинкский

2014-09-06

34 KB

0 чел.

Лекція № 8

Тема: Вказівник this

    Під час кожного виклику функції-члена класу їй автоматично передається вказівник на об'єкт, який  іменується ключовим словом  this, для якого викликається ця функція. Вказівник this – це неявний параметр, який приймається всіма функціями-членами класу. Отже, в будь-якій функції-члені класу вказівник this використовується для посилання на викликуваний об'єкт.

    Як уже  зазначалося вище, функція-член класу може мати прямий доступ до закритих (private)  членів-даних  свого  класу.  Наприклад,  нехай  визначено  такий клас:

class myClass 

{     int c;

     void Fun() {...};

     // ...

};

    У  тілі функції  Fun() можна  використовувати  таку  настанову  для  присвоєння члену c значення 10:

c = 10;

Насправді попередня настанова є скороченою формою такої:

this->c = 10;

Щоби зрозуміти, як працює вказівник this, розглянемо таку навчальну програму.

Приклад 1.  Демонстрація механізму застосування ключового слова this 

class myClass

{           int c;

       public:

 void Get(int n)   { this->c = n; }          // те саме, що c = n

 int Put()     { return this->c; }             // те саме, що return c

};

 

int main()

{      myClass Obj;   

       Obj.Get(100);

       cout << "c= " << Obj.Put() << endl;

       getch(); return 0;

}

    Внаслідок виконання ця програма відображає на екрані число 100. Безумовно, цей приклад тривіальний, але у ньому показано, як можна використовувати  вказівник this.  З  матеріалу  наступних  тем Ви  зрозумієте,  чому вказівник this є таким важливим для написання програм мовою C++.

    Кожна нестатична функція-член класу має доступ до обєкта, для якого вона викликана, через ключове слово this. Зазвичай, вказівник this використовують для повернення вказівника ( return this) або посилання ( return *this) на об’єкт класу.

Приклад 2.  Демонстрація механізму застосування ключового слова this 

class A

{

 int i;

public:

A(int i1) {i=i1;}

 void show(){cout<<"i="<<i<<endl;}

 void print()

{

 show();

 this->show();

 (*this).show();

}

};

void main()

{

A obj(1);

obj.print();

}

  Результати виконання програми:

і=1

і=1

і=1

   Вказівник this дуже важливий при перевантаженні операторів.

   Пам'ятаєте, що вказівник this автоматично передається всім функціям-членам.

   На закінчення зробимо два важливі зауваження. По-перше, дружні функції ( не є функціями-членами), і, отже, їм не передається вказівник this. По-друге, статичні функції-члени також не отримують вказівник  this.

   


 

А также другие работы, которые могут Вас заинтересовать

71076. Создание простейшей базы данных (с помощью шаблонов и конструктора таблиц) 459.37 KB
  Добавление записи Если вы хотите добавить в таблицу новую запись, просто установите курсор в любое поле последней (пустой) строки таблицы и введите значение.Программа автоматически создаст новую запись. Если первичным ключом служит поле с типом Счетчик, то записи будет автоматически присвоен идентификатор.
71077. Зібрати схеми суматорів, досліджувати їх характеристики 362 KB
  Суматори виконують арифметичне (в протилежність логічному) складання і віднімання чисел. Мають самостійне значення і є також ядром схем арифметико-логічних пристроїв (АЛП), що реалізують ряд різних операцій і є неодмінною частиною всіх процесорів. Апаратна складність і швидкодія суматора є дуже важливі параметри і тому розроблено безліч варіантів суматорів...
71079. ДИЛАТОМЕТРИЧНИЙ МЕТОД ДОСЛІДЖЕННЯ ЯК МЕТОД ВИВЧЕННЯ ФАЗОВИХ ПЕРЕТВОРЕНЬ І ДЕФЕКТІВ У МЕТАЛАХ І СПЛАВАХ 265 KB
  В твердих тілах і рідинах теплове розширення пов’язано з несиметричністю (ангармонізмом) теплових коливань атомів. Завдяки цьому міжатомні відстані з підвищенням температури зазвичай збільшуються. Прості співвідношення (1)-(3) є справедливими для металів і сплавів в температурних інтервалах, в яких відсутні фазові перетворення 1-го роду...
71080. Социально-психологический климат в семье 235 KB
  Интегрированные и дезинтегрированные семьи различаются по степени включенности членов семьи в семейную группу по их духовной и эмоциональной спаянности по степени их сплоченности. В интегрированных семьях каждый член семьи идентифицируется с семейной группой рассматривая себя в качестве ее обязательного и полноправного...
71081. Причины и мотивы разводов. Роль разводов, статистик разводов 34.28 KB
  От развода следует отличать признание брака недействительным в судебном порядке и прекращение брака ввиду кончины одного из супругов. Католическая церковь отрицает саму возможность расторжения брака до смерти одного из супругов; в православии допускался развод вследствие тяжелого заболевания одного из супругов бесплодия...
71082. Влияние семьи на развитие ребенка. Семья как фактор психического развития ребенка 65.42 KB
  Появление в семье ребенка всегда радость. Новый член семьи обогащает семейные отношения, задает новые цели развития личности своих родителей. Меняется структура общения, меняется содержание ролей мужа и жены, появляются новые роли – роли матери и отца. Огромное значение имеет и обратное воздействие, то есть – влияние семьи на развитие ребенка.
71083. Цели и задачи обучения информатике в школе. Общие и конкретные цели обучения основам информатики в школе 81 KB
  Общие цели обучения информатике определяются с учетом особенностей информатики как науки ее роли и места в системе наук в жизни современного общества. Образовательная и развивающая цель обучения информатике в школе – дать каждому школьнику начальные фундаментальные знания основ науки информатики включая представления...
71084. Компетентностный подход к формированию целей образования 34.5 KB
  Компетенция совокупность взаимосвязанных качеств личности знаний умений навыков способов деятельности задаваемых по отношению к определенному кругу предметов и процессов необходимых для качественной продуктивной деятельности по отношению к ним. Компетентность – владение обладание человеком соответствующих...