69733

Покажчик this

Домашняя работа

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

Кожний об’єкт містить свій екземпляр полів класу. Методи класу знаходяться в пам’яті в єдиному екземплярі і використовуються всіма об’єктами сумісно, тому необхідно забезпечити роботу методів з полями саме того об’єкта, для якого вони були викликані.

Украинкский

2014-10-09

22.5 KB

0 чел.

Самостійне вивчення

Тема 10: Покажчик this

Кожний об'єкт містить свій екземпляр полів класу. Методи класу знаходяться в пам'яті в єдиному екземплярі і використовуються всіма об'єктами сумісно, тому необхідно забезпечити роботу методів з полями саме того об'єкта, для якого вони були викликані. Це забезпечується передачею у функцію прихованого параметра this, в якому зберігається константний покажчик на викликаючий функцію об'єкт. Покажчик this неявно використовується всередині методу для посилань на елементи об'єкту. В явному вигляді цей покажчик застосовується в основном для повернення з методу покажчика (return this;) або посилання (return *this;) на об'єкт який викликався.

Для ілюстрації використання покажчика this додамо в клас monstr новий метод, який повертає посилання на найздоровішого (поле health) з двох монстрів, один з яких викликає метод, а інший передається йому як параметр (метод потрібно помістити в секцію public опису класу):

monstr &the_best(monstr &M)

{

if( health > M.health) return *this;

return M;

}

... monstr Vasia(50), Super(200);

// Новий об'єкт Best ініціалізувався значеннями полів Super:

monstr Best = Vasia.the_best(Super);

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

void cure(int health, int ammo)

{

this -> health+=health:         // Використання this

monstr:: ammo+=ammo;      // Використовування операції ::

}


 

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

8625. Сократ и софисты 113 KB
  Сократ и софисты Вопросы: 1. Какие определения благочестия даёт Евтифрон. Как опровергает эти определения Сократ? 3. Какова цель Сократовских бесед, если ответа в конце каждого диалога не даётся? 3. Можно ли вообще дать определение благочестию? Е...
8626. Философия Аристотеля. Аристотель кается перед Платоном 92.5 KB
  Философия Аристотеля Вопросы: 1. Что Аристотель называет началом, которым «должен владеть всякий, кто постигает какую-либо вещь»? При помощи какого метода строит свою философию Аристотель? 2. В чём состоит критика Аристотелем Платоновской теории иде...
8627. Философия Средних веков (богословие) и эпохи Возрождения 130 KB
  Философия Средних веков (богословие) и эпохи Возрождения Вопросы: 1. В чём отличие богословия от философского мышления? 2. Какие ступени познания выделяет Плотин? В чём отличие учения Плотина от богословия? 3. Какие два монотеизма противостоят друг ...
8628. Философия Р.Декарта и Ф.Бэкона 249 KB
  Философия Р.Декарта и Ф.Бэкона Р.Декарт РАЗЫСКАНИЕ ИСТИНЫ ПОСРЕДСТВОМ ЕСТЕСТВЕННОГО СВЕТА, который сам по себе, не прибегая к содействию религии или философии, определяет мнения, кои должен иметь добропорядочный человек относительно всех предметов, ...
8629. Философия И.Канта 102.5 KB
  Философия И.Канта Вопросы: 1. В чём отличие эмпирических знаний от априорных? 2. Какие признаки априорного знания выделяет И.Кант? Какова задача философии, по Канту? Чем обусловлена постановка задачи? 3. Какую классификацию суждений предлагает Кант?...
8630. Русская религиозная философия 19-20 веков 68 KB
  Русская религиозная философия 19-20 вв. Вопросы: 1. Какой должна стать русская философия? С каким предметом она должна иметь дело? 2. Как И.Ильин аргументирует необходимость отказа от намеренного выдумывания философских систем? 3. Каков закон иссл...
8631. Сознание как философская категория 56.5 KB
  Сознание как философская категория Вопросы: 1. Какие правила мышления выделяет И.Кант? Как понимается мышление в европейской традиции? 2. Что такое сознание? Как формулирует своё предназначение человек сознающий? 3. Каковы свойства гармонии, носител...
8632. Проблема познания в философии 105 KB
  В каком смысле акты научного познания - свободные явления. Можно ли рассматривать знание законов как актуализацию готовых смыслов и сущностей. Можно ли рассматривать знание как превращение...
8633. Личность как философская категория 158.5 KB
  Человек бесчувственный. За что критикует К.Льюис авторов одного из английских учебников для старших классов. Какие следствия имеют взгляды данных авторов. Какая мыслительная традиция...