Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Вільна Пам'ять

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Если похідний клас здійснює присвоювання покажчику this, то конструктор його базового класу буде викликатися лише після цього присвоювання, і значення покажчика this в конструкторі базового класу тим, яке присвоєно конструктором похідного класу. Якщо базовий клас привласнює покажчику this, він присвоєно ті значення, яке використовує конструктор похідного класу. Если деструктор похідного класу… Читати ще >

Вільна Пам'ять (реферат, курсова, диплом, контрольна)

Свободная Память

Если ви користувалися класом slist, ви могли знайти, що ваша програма витрачає на помітне час розміщення і «визволення об'єктів класу slink. Клас slink — це чудовий приклад класу, який може значно виграти від цього, що програміст візьме під контроль управління вільної пам’яттю. І тому виду об'єктів є ідеальним оптимизирующий метод. Оскільки кожна slink створюється з допомогою new і знищується з допомогою delete членами класу slist, інший шлях виділення пам’яті технічно нескладне ніяких проблем.

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

Например:

#include.

struct base { base (); };

struct derived: base { derived (); }.

base:base ().

{.

cout << «tbase 1: this= «<< int (this) << «n » ;

if (this == 0) this = (base*)27;

cout << «tbase 2: this= «<< int (this) << «n » ;

}.

derived:derived ().

{.

cout << «tderived 1: this= «<< int (this) << «n » ;

this = (this == 0)? (derived*)43: this;

cout << «tderived 2: this= «<< int (this) << «n » ;

}.

main ().

{.

cout << «base b;n » ;

base b;

cout << «new base b;n » ;

new base;

cout << «derived d;n » ;

derived d;

cout << «new derived d;n » ;

new derived;

cout << «at the endn » ;

}.

порождает висновок.

base b;

base 1: this=2 147 478 307.

base 2: this=2 147 478 307.

new base;

base 1: this=0.

base 2: this=27.

derived d;

derived 1: this=2 147 478 306.

base 1: this=2 147 478 306.

base 2: this=2 147 478 306.

derived 1: this=2 147 478 306.

new derived;

derived 1: this=0.

base 1: this=43.

base 2: this=43.

derived 1: this=43.

at the end.

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

Список литературы

Для підготовки даної роботи було використані матеріали із російського сайту internet.

Показати весь текст
Заповнити форму поточною роботою