常物件與常成員函式的關係

2021-06-21 09:52:33 字數 1403 閱讀 1129



(1) 常物件

用const修飾的物件叫物件常量,其格式如下:

〈類名〉const 〈物件名〉 或者 const 〈類名〉〈物件名〉

宣告為常物件的同時必須被初始化,並從此不能改寫物件的資料成員。

例:分析下列錯誤的地方,說明理由;

#include

class point

void movepoint( int a, int b)

void print();

void main( )

錯誤原因在旁邊已經注釋。 

常物件常被用在物件的引用上。所謂常引用是指說明引用時用const修飾。常引用所引用的物件不能被更

新,一般用做形參。其格式:

const 〈型別說明〉&〈引用名〉 

例:根據例題5-11的類給出程式的執行結果:

#include

int length(const point &p1, const point &p2)

void main( )

本程式的輸出:

兩點的距離是:5 

(2)常成員函式

〈型別〉〈函式名〉(〈參數列〉)const;

常成員函式的作用和功能:

常成員函式不能更新物件的資料,也不能呼叫非const修飾的成員函式。常物件只能呼叫類的常成員函式

以及類的靜態成員函式。  例:

給出下列程式的執行結果:

#include

class point

void movepoint( int a, int b)

void print()const ;

void main( )

本程式執行結果:

x=1 y=1

x=2 y=2 

使用const關鍵字說明的成員函式稱為常成員函式,常成員函式的說明格式如下: 

《返回型別說明符》 《成員函式名》(《參數列》) const;

; 在使用常成員函式時要注意: 

(1) const是函式型別的乙個組成部分,因此在函式實現部分也要帶有const關鍵字。 

(2) 常成員函式不更新物件的資料成員,也不能呼叫該類中沒有用const修飾的成員函式。 

(3) 常物件只能呼叫它的常成員函式,而不能呼叫其他成員函式。成員函式與物件之間的操作關係如

表12-1所示。 

void print() const; 

這兩個函式可以用於過載。過載的原則是:常物件呼叫常成員函式,一般物件呼叫一般成員函式。 

(5)在const成員函式中: 

可以修改被定義成mutable的成員變數

常成員函式與常物件

先明確幾個概念 1.常物件只能呼叫常成員函式。2.普通物件可以呼叫全部成員函式。3.當對乙個物件呼叫成員函式時,編譯程式先將物件的位址賦給this指標,然後呼叫成員函式,每次成員函式訪問資料成員時,由隱含使用this指標。4.當乙個成員函式被呼叫時,自動向它傳遞乙個隱含的引數,該引數是乙個指向這個成...

常物件與常成員函式

常物件的宣告形式 必須進行初始化,不能被更新 const 類名 物件名 常引用 被引用的物件不能被更新 const 型別說明符 引用名 常陣列 陣列元素不能被更新 型別說明符 const 陣列名 大小 常指標 指向常量的指標,指向的內容不能通過該指標改變,但可以改變指向的物件 const 型別說明符...

常成員,常函式,常物件

知識點1.常物件中的任何型別的資料成員 無論私有還是公有 的值都不能被改變。知識點2.常物件能呼叫的 1.公有的常成員函式 2.建構函式 3.公有的靜態函式 知識點3.常物件與常成員函式只有同時存在才都有意義 知識點4.普通物件既可以呼叫常成員函式,也可以呼叫非常成員函式 知識點5.常成員函式不能更...