C++
類的實例化有兩種方法:
直接定義對象:
先定義一個類:
class A
{
public:
A();
virtual ~A();
...
...
};
類實現略。
用的時候:
A a;
a.
成員函數;
a.
成員變量;
a
就是一個對象。
定義一個類指針的方法: A *p = new A; p->成員函數; p->成員變量;
最后別忘了銷毀對象:delete[] a;
A由系統創建並釋放,你不要擔心會出現內存泄露,但是生命期只有在本區域的大括號內,出了大括號就沒用了。p是指針,要自己釋放,用不好很危險,用好了功能強大,因為他可以賦值給全局的變量,一下子從局部變量變成全局變量,還能把對象作為函數返回值。
A a;
A * a = new a();
以上兩種方式皆可實現類的實例化,有new的區別在於:
1.前者在堆棧中分配內存,后者為動態內存分配,在一般應用中是沒有什么區別的,但動態內存分配會使對象的可控性增強。 2.不加new在堆棧中分配內存 3.大程序用new,小程序直接申請 4.只是把對象分配在堆棧內存中
5.new必須delete刪除,不用new系統會自動回收內存
