C 通過引用來傳遞和返回類物件

2021-09-17 08:51:45 字數 837 閱讀 4481

類是c++語言物件導向程式設計的載體,我們也可以將類視為一種特殊的資料型別。在c++語言中,由類宣告的物件,和其它型別宣告的變數一樣,同樣可以通過傳值、引用和指標的方式作為函式的引數或函式返回值。

通常來講,除非是迫不得已,否則最好不要採用傳值的方式傳遞和返回物件,這是因為採用傳值的方式傳遞和返回物件的過程中需要經歷物件間的拷貝操作,這樣會在一定程度上降低程式執行的效率,從而使得待處理資料量增大,增加記憶體的使用。而採用引用或指標的方式則不會有這樣的問題,而實際上,因為引用表達更加簡練直觀,因此也較少使用指標來傳遞物件或作為函式返回值

[例1] 物件引用舉例:

class book

;book alice;

book &alice_reference = alice;

物件的引用和普通的變數引用基本語法是一樣的。如例1所示,先定義了book類,之後定義了book類物件alice,最後一句定義了alice_reference是alice物件的引用

[例2] 通過引用的方式來傳遞和返回物件:

#includeusing namespace std;

class book

;void book::setprice(double a)

double book::getprice()

void book::settitle(char* a)

char * book::gettitle()

void display(book & b)

int &g()

int main()

運算結果:

a =0;

b = -1;

f = 10;

C 返回物件和返回引用

最大的區別在於,返回物件的話會在記憶體中根據返回的型別開闢一塊區域,用返回的值對該記憶體進行初始化,如果是返回的物件,利用拷貝構造來初始化這個區域,但是這塊區域並沒有名字,就是說之後使用者沒辦法訪問到這個區域,也成為無名變數,它只能在接下來的 中進行一次性的用途,要不作為引數傳遞,或者將值列印,再之...

C 返回物件和返回引用

我們發現,在c 中,有些成員函式返回的是物件,而有些函式返回的又是引用。返回物件和返回引用的最主要的區別就是函式原型和函式頭。car run const car 返回物件 car run const car 返回引用 返回物件會涉及到生成返回物件的副本。因此,返回物件的時間成本包括了呼叫複製建構函式...

C 使用引用來傳遞對像

例項1 include using namespace std class a a a a void set int i int get const private int x 用const定義乙個不能修改的指標並返回one值 a func a one int main a a a void set...