69715

Вказівники на об’єкти

Лекция

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

Як відомо, при збільшенні покажчика на одиницю він переміщається на наступний елемент того ж типу. Наприклад, цілочисельний покажчик посилатиметься на наступне ціле число. Як правило, адресна арифметика залежить від типу покажчика. (Інакше кажучи, вона залежить від типа даних, на які посилається покажчик.).

Украинкский

2014-10-09

27.5 KB

0 чел.

Тема 5: Вказівники на об'єкти

Покажчики можуть посилатися не тільки на змінні вбудованих типів, але і на об'єкти. Для доступу до членів класу через покажчик на об'єкт використовується оператор  "->" , а не ".". Проілюструємо це за допомогою наступної програми.

#include <iostream>

using namespace std;

class cl {

int і;

public:

cl(int j) { i=j; }

int get_i() { return і; }

};

int main()

cl ob(88), *p;

p = &ob;   // Одержуємо адресу об'єкту ob.

cout << p->get_i(); // для виклику функції get_i() // застосовується оператор ->

return 0 ;

}

Як відомо, при збільшенні покажчика на одиницю він переміщається на наступний елемент того ж типу. Наприклад, цілочисельний покажчик посилатиметься на наступне ціле число. Як правило, адресна арифметика залежить від типу покажчика. (Інакше кажучи, вона залежить від типа даних, на які посилається покажчик.). Це правило торкається і покажчиків на об'єкти.

Покажчику можна привласнити адресу відкритого члена об'єкту, а потім посилатися на цей член з його допомогою. Розглянемо наступну програму, яка виводить на екран число 1.

#include <iostream>

using namespace std;

class cl {

public:

int   i;

cl (int j) { i=j;}

int main ()

{

cl ob(l);

int   *p;

p = &ob.i;    // Отримати адресу члена ob.i.

cout << *p;  // Звернення до члена ob.i через покажчик р

return 0;

}

Оскільки покажчик р посилається на ціле число, він має тип int. В даному випадку не має значення, що змінна є членом об'єкту ob.

Передача посилань на об'єкти

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

#include <iostream>

using namespace std;

class cl {

int id;

public:

int і ;

cl(int i);

~cl();

void neg(cl &o) { o.i = -o.i; }// Тимчасовий об'єкт не створюється

};

cl::cl(int num)

{

cout << "Створення об'єкту " << num << "\n";

id = num;

}

cl::~cl()

{

cout << "Знищення об'єкту " << id << "\n";

}

int main()

{  

cl о(l);

о. і  =   10;

о. neg(о);

cout <<  о. і  <<   " \n" ;

return   0;

}


 

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

1627. Понятие о ветеринарной гинекологии и андрологии. Их задачи в профилактике и ликвидации бесплодия с/х животных 20.83 KB
  Ветеринарная гинекология как отрасль клинической ветеринарии изучает патологические процессы в половых и других органах вне беременности, родов и послеродового периода и процессы, приводящие к бесплодию самок.
1628. Понятие о естественном осеменении животных 20.15 KB
  Естественное осеменение в половые - комплекс условных и безусловных рефлексов обеспечения, выделения спермы из органа самца в половые органы самки.
1629. Понятие о родовом акте. Факторы, обуславливающие роды 20.16 KB
  Родовой акт - физиологический процесс, заключающийся в выделении их организма матери зрелого живого плода с изгнанием плодных оболочек и плодных вод.
1630. Послеродовой парез: причины, формы, признаки, диагностика, лечение и профилактика 20.75 KB
  Послеродовом парез - острое тяжело протекающее заболевание у высокопродуктивных, хорошо упитанных животных, получающих большое количество концентрированных кормов.
1631. Послеродовой период. Общие изменения в организме самок после родов 19.87 KB
  Послеродовой период - время от окончания родов(изгнание последа) до завершения инвазии половых и других органов роженицы.
1632. Предвестники родов у животных 19.3 KB
  По мере приближения конца плодоношения организм матери претерпевает ряд изменений, значение которых заключается в его приспособления к осуществлению родового акта.
1633. Признаки беременности ( вероятные и истинные) 19.9 KB
  Беременность животных определяют путем опроса обслуживающего персонала (сбора анамнеза) и исследованием животного. Признаки беременности, обнаруживаемые при наружном исследовании животного.
1634. Применение синтетических и биологических сред для хранения спермы разных видов животных в зависимости от температурного режима 20.13 KB
  Разбавители могут быть биологическими и синтетическими (искусственными) средами. Из биологических сред использовалось коровье молоко, кокосовое молоко, 7%-ный раствор пчелиного меда, а также томатный сок.
1635. Экономический расчет термостабилизатора 41.53 KB
  Термостабилизатор - устройство предназначеное для автоматического поддержания температуры. Расчет показателей технологичности прибора. Затраты на изготовление и сборку нового объекта. Расчет годовых расходов при эксплуатации базового и нового приборов.