Създаване, Разрушаване, Копиране, Инициализиране на обекти
| Информационни технологии | 2009-12-04 | 78 сваляния |
Създаване, Разрушаване, Копиране, Инициализиране на обекти
Създаване и разрушаване на обекти
Автоматични обекти
Създават се с деклариране във функция или блок (извиква се конструктор).
Разрушават се след излизане от функция или блок (извиква се деструктор).
Статични обекти
Създават се с деклариране: а) извън функция; б) във функция, но с думата static.
Създават се преди началото на main и се разрушават след края и.
Достъпни са за всички функции след декларацията им (а).
Достъпни са за функциите в или пред дефиницията на които са дефинирани (б).
Динамични обекти
Създават се в частта heap на паметта чрез new, който извиква конструктора.
Разрушават се чрез delete, който извиква деструктора.
Пример
#include
#include
class test
{ int a,b;
public:
test(int,int); //конструктор
~test(); //деструктор
};
tets::test(int k,int j)
{ a=k; b=j; cout<<конструктор:<<a<< <<b<<n; }
test::~test()
{ cout<<деструктор:<<a<< <<b<<n; }
test a(1,1); //статичен обект
void f();
void main()
{ test b(5,5); //автоматичен обект
for(int j=1;j<=2;j++)
test c(j,2*j); //автоматичен обект в блок
test *p;
p=new test(2,3); //динамичен обект
if(!p) exit(1);
delete p;
f();
}
void f()
{ static test d(6,7); } //статичен обект
Резултати от изпълнение
конструктор 1 1 //при създаване на обекта а
конструктор 5 5 //при създаване на обект b
конструктор 1 2 //при създаване на обект c в блок
деструктор 1 2 //разрушаване на обект c
конструктор 2 4 //при създаване на обект c в блок
деструктор 2 4 //разрушаване на обект c
конструктор 2 3 //при създаване на обект р
деструктор 2 3 //разрушаване на обект р
конструктор 6 7 //при създаване на обекта d
Тагове от реферата: копиане, ушаване, нициране, рушне, съзане, съзне, Копиране











