有關c 過載運算子的問題

2022-12-03 21:30:24 字數 667 閱讀 4944

1樓:

第一行是引用,是傳地址呼叫函式,在呼叫函式時會減少複製物件的開銷。這時,形參就是實參的一個引用,對形參的修改會影響到實參。第二行的傳值呼叫,所謂的傳值呼叫是指把實參複製給形參,形參和實參是兩個獨立的個體,形參是實參在記憶體上的另一個拷貝,對形參的一切修改一般不會影響到實參。

如,對於第二個宣告有以下函式呼叫:

operator +( arg1,arg2);////arg1,arg2皆為complex型別的物件

那麼主調函式首先在自己的棧幀中新建兩個complex型別的物件,作為被調函式,即complex operator +( arg1,arg2); 的形參,即c1,c2(這裡進行的操作等同於語句complex c1=arg1;complex c2=arg2;的語義)。

對於第一個宣告,有以下呼叫:

operator +( arg1,arg2);//同上

在呼叫該函式前,主調函式將把形參壓入自己的棧幀中,這裡進行的操作等同於語句進行的操作。

在 c++程式設計語言 這本書中,作者,斯特朗斯特魯普說,函式形參的初始化語義,跟普通物件的初始化語義是一致的。

2樓:帳號已登出

上面的引用表示是記憶體的地址,下面的是表示傳入一個對像.

請問 c 中,這樣過載運算子對不對

最大的錯誤在於沒有理解運算子過載,如 class a 其中的運算子函式呼叫,相當於,下面的函式呼叫 物件 operator 運算子 如果單單寫 int operator rmb rmb,int i 如果c 認為這個是正確的,那麼在 rmb r r 1 10 和int a 4 a 1 1 c 怎麼能判...

關於C 中過載自增運算子

這個呼叫的預設拷貝函式 this實際上就是呼叫成 copy員函式的物件地址。如 time1.display 若display 裡有用到this的話,this的值其實為 time1,所以 this time1.time time operator int 這個是後加加的函式原型,後 其實是先儲存值,在...

c 運算子過載問題,vc6 0可通過,dev c 出問題

include using namespace std class int int int a int geti friend ostream operator ostream stream int object1 去掉int的reference friend ostream operator 推薦...