類物件和類指標的區別

2021-06-20 14:09:57 字數 758 閱讀 2026

對於類ctest

宣告:類物件ctest c1:利用類的建構函式在記憶體中分配一塊記憶體,呼叫了建構函式

類指標ctest  *pc1:是乙個記憶體位址值,指向記憶體中存放的類物件,沒有呼叫建構函式

引用成員:

物件用"."

指標用"->"

物件生命期:

若是成員變數,則是類的析構函式來釋放空間

若是函式中的臨時變數,則作用域是該函式體內

指標生命期:

則需利用delete在相應的地方釋放分配的記憶體塊,用new一定要delete

記憶體占用:

物件用的是記憶體棧,是個區域性的臨時變數

指標用的是記憶體堆,是個永久變數,除非你釋放它

函式呼叫:

物件引數,引數傳遞占用的資源就太大了

指標引數,傳過去的就是4個位元組

當類是有虛函式的基類,關於虛函式的呼叫:

類的物件呼叫的是它自己的虛函式

類的指標呼叫的是分配給它空間時那個類的虛函式,要發揮虛函式強大就必須使用指標

對於類的物件和類的指標(用new運算子分配記憶體)在應用時區別 :

1:指標可以實現多型,父類的指標可以指向子類的物件,直接使用物件不行

2:當你希望明確使用這個類的時候,最好使用物件,如果你希望使用c++中的動態繫結,則最好使用指標或者引用

3:在類的宣告尚未完成的情況下,可以宣告指向該類的指標,但是不可宣告該類的物件

5:定義物件例項時就已經分配了記憶體,指標如果沒有new則未分配類物件所需記憶體

類物件和類指標區別

類物件和類指標 本文 student a s.setname a studeng b new student student b b new student b setname b 分析 定義類物件基本格式是 student a 在定義之後就已經為a這個物件分配了記憶體,且為記憶體棧 定義類指標基本...

類指標和類物件的區別

如下程式 include include using namespace std class student void set string str void print 態成員函式 print int student number 0 靜態資料成員初始化 int main int argc,cha...

類物件和類指標的區別

如下程式 include include using namespace std class student voidset string str void print 態成員函式 print int student number 0 靜態資料成員初始化 int main int argc,char...