C 中物件的常引用總結

2022-10-04 04:39:09 字數 1388 閱讀 3552

直接傳遞物件名

用物件名做函式引數時,在函式呼叫時將建立乙個新的物件,它是形參物件的拷貝。

***************=下面給出乙個直接傳遞物件名的例子程式1.1***************===

複製** **如下:

#include

using namespace std;

class time

;time::time(int y,int m,int d)

void time::print()

void time::reset(time t)

int main()

執行結果:

從執行結果來看,reset函式並沒有起到作用。

實參把值傳遞給形參,二者分別佔不同的儲存空間。無論形參是否修改都不會到實參的值。這種形式的虛實結合,要產生實參的拷貝,當物件的規模比較大的時候,則時間開銷和空間開銷都可能很大。

因此,這種方法雖然可行,但是並不提倡這種用法~

形參為物件的引用

如果形參為物件的引用名,實參為物件名,則在呼叫函式進行虛實結合時,並不是為形參另外開闢乙個儲存空間(常稱為建立實參的乙個拷貝),而是把實參變數的位址傳給形參(引用名),這樣引用名也指向實參變數。

對於程式1.1而言,我們只需要將reset函式的形參宣告為物件的引用即可。

複製** **如下:

#includewww.cppcns.com

using namespace std;

class time

;time::time(int y,int m,int d)

void time::print()

void time::reset(time &t)//**********====對這一行**進行了修改***************==

int main()

執行結果:

形參為物件的常引用

如果我們在宣告函式的引數為物件引用的時候,還可以將它宣告為const(常引用)

複製** **如下:

void reset(const time &t);

則在函式中只能使用物件t中的資料成員和成員函式,而不能修改其中的成員函式,也就是不能修改其對應的實參中的資料成員的值。

複製** **如下:

#include

using namespace std;

class time

;time::time(int y,int m,int d)

void time::print()

void time::reset(const time &t)

int main()

該程式會報錯,因為在函式reset中,企圖修改物件t中的資料成員的值

本文標題: c++中物件的常引用總結

本文位址:

c 中的常量,常物件,常引用,常指標

所謂常量是指在程式執行中值始終不可改變的量。而常物件是指他的資料成員在物件的整個生存週期內不能改變。這也意味著不能用常物件去呼叫普通的成員函式,因為有可能會改變常物件的資料成員,所以便有了常成員函式。如果乙個物件被宣告為常物件,他只能呼叫常成員函式。普通物件也能呼叫常成員函式,但是會被視為常物件,即...

C 程式設計必知 常引用 常物件和物件的常成員

1.常引用 用const宣告的引用就是常引用。常引用所引用的物件不能被更改。我們經常見到的是常引用作為函式的形參,這樣不會發生對實參的誤修改。常引用的宣告形式為 const 型別說明符 引用名。雞啄公尺給大家看個常引用作為函式形參的例子 include using namespace std voi...

C 共享資料的保護(常物件,常成員,常引用)

1 常物件 必須進行初始化並且不能被修改。class fun private int x const fun funa 2 2 常成員函式 型別說明符 函式名 參數列 const 1 在函式的定義部分也要帶上const關鍵字。2 如果乙個物件是常物件,那麼常物件只能呼叫常成員函式,不可以呼叫其他函式...