A(): 是對象,是一個值,或者說一個內存塊;
A a :定義一個指向A對象的變量a,a其實就是一個靜態指針;
new A() :生成對象,並返回指向該對象的地址;
A* :定義一個存儲A對象指針的變量。
陷阱:
- A * a = & A();
錯誤,A()返回的是一個值,就像2這樣的值,不是變量,所以不能用&。
2. A a ; A* a_p = &a;
可以,但要確保 a、a_p的作用域相同,如果a_p的作用域大於a的,當離開a的作用域之後a_p的值將變成非法的,因爲a已經被銷燬了。