類的指針:他是一個內存地址值,他指向內存中存放的類對象(包括一些成員變量所賦的值).
類的對象:他是利用類的構造函數在內存中分配一塊內存(包括一些成員變量所賦的值).
在應用時:
1.引用成員: 對象用" . "操作符; 指針用" -> "操作符.
2.生命期: 若是成員變量,則是類的析構函數來釋放空間;若是函數中的臨時變量,則作用域是該函數體內.
而指針,則需利用delete在相應的地方釋放分配的內存塊.
注意:用new 一定要delete..
當類是有虛函數的基類,F是它的一個虛函數,則調用f時:
類的對象:調用的是它自己的F;
類的指針:調用的是分配給它空間時那種類的F;
1.在類的聲明尚未完成的情況下,可以聲明指向該類的指針,但是不可聲明該類的對象...
2.父類的指針可以指向子類的對象..
定義對象實例時,分配了內存。指針變量則未分配類對象所需內存
指針變量是間接訪問,但可實現多態(通過父類指針可調用子類對象),並且沒有調用構造函數。
直接聲明可直接訪問,但不能實現多態,聲明即調用了構造函數(已分配了內存)。
至於那個效率高要看程序調用過程而定。
C++的精髓之一就是多態性,只有指針或者引用可以達到多態。對象不行
用指針:
第一實現多態。
第二,在函數調用,傳指針參數。不管你的對象或結構參數多么龐大,你用指針,傳過去的就是4個字節。如果用對象,參數傳遞占用的資源就太大了
http://blog.csdn.net/wang7890/article/details/3907489