物件和物件指標以及物件引用的使用

2021-06-21 12:07:46 字數 1214 閱讀 7399

如下程式: 

#include

#include

using namespace std; 

class m;  //向編譯系統宣告,m類在整個源程式內已經定義

class student 

void set(string str) 

void print() 

}; class m //m類的有參建構函式

m()   //m類的無參建構函式

int getvalue(void)  }

int student::number = 0; // 靜態資料成員初始化方式

int main(int argc, char** argv) 

類物件和指標的作用都是為了呼叫類的成員變數和成員函式用的,當希望明確使用該類的時候最好使用物件,當希望利用c++的多型性,實現動態繫結,

則需要使用指標或引用(如父類指標可以指向子類物件,並且沒有呼叫建構函式),類的物件則不行。

一、關於定義:

對於類student ,定義了乙個物件 和乙個指標。類的物件在定義時利用建構函式在記憶體中分配一塊記憶體(包括一些成員變數所賦的值);類的指標是乙個記憶體位址值,他指向記憶體中存放的類物件(包括一些成員變數所賦的值)。很關鍵一點,在定義物件例項時分配記憶體;在定義類指標時則未分配物件所需記憶體(在未用new操作符時)。

二、關於應用:   

1.訪問成員:   物件用"."操作符;   指標用" ->"操作符.   

2.生命期:      若是成員變數,則是類的析構函式來釋放空間;若是函式中的臨時變數,則作用域是該函式體內。而指標,則需利用delete在相應的地方釋放分配的記憶體塊.   

注意:用new,一定要delete 3.

記憶體分配:類的物件

在棧空間中分配,是個區域性的臨時變數。

類的指標在堆空間中分配,是個永久變數,除非你釋放它。 

4.虛函式的呼叫:

當基類有虛函式,func是它的乙個虛函式,則呼叫func時:  

類物件呼叫的是它自己的func;   

類指標呼叫的是分配給它空間類的func。

5.乙個類的物件不能作為該類的成員,但乙個類的物件指標或者物件應用卻可以作為自身類的成員,從而構成遞迴類。

總結指標或引用的優點有: 

第一,實現多型;

第二,在函式呼叫,傳指標引數。不管你的物件或結構引數多麼龐大,用指標,傳過去的就是4個位元組,如果用物件,引數傳遞占用的資源就很大。

C 物件指標和物件引用

在c 中,可以說明指向類的資料成員和成員函式的指標 1 指向資料成員的指標格式如下 型別說明符 類名 指標名 2 指向成員函式的指標格式如下 型別說明符 類名 指標名 參數列 如下例 class a public int fun int b a int i int c private int a 定...

C 中的物件指標和物件引用

在c 中,可以說明指向類的資料成員和成員函式的指標。指向資料成員的指標格式如下 型別說明符 類名 指標名 指向成員函式的指標格式如下 型別說明符 類名 指標名 參數列 例如,設有如下乙個類a 定義乙個指向類a的資料成員c的指標pc,其格式如下 int a pc a c 再定義乙個指向類a的成員函式f...

JS 類 物件以及物件的建構函式

一 類 對一類抽象事物共有特徵的描述 如人 杯子 二 物件 乙個具體的例項 如小剛 保溫杯 var xiaogang var xiaoli var xiaohua function car car.lun1 左前輪 car.lun2 右前輪 car.lun3 左後輪 car.lun4 右後輪 car...