1樓:兔子和小強
函式末尾加const表示該函式不修改類中的成員變數,而返回型別處加&,是為了直接返回物件本身,在這個例子中,通過返回double &可以使函式做左值。
所以double operator(int i)const;宣告瞭函式不修改類中變數,但這個函式只是返回一個值,不能做左值。
而double & operator(int i); 可以做左值 。
寫成double & operator(int i)const;比較好
2樓:周生
const放在這個位置標示返回的值是常值,即返回值不允許改變&表示返回的是原來的變數的引用
正常情況下應該是第一個函式的形式,應該返回一個引用,並且該引用的值時允許改變的
比如int a = ;
你可以寫
int b = a[3];//這個時候返回值或者引用都可以滿足結果a[3] = 100;//這個時候必須返回的是引用,否則你便無法改變陣列中的元素a[3]
3樓:匿名使用者
看一下const的用法。這個很典型。我贊同「兔子和小強」的回答
要運算元組中的元素當然是第一個。
要給一個變數賦值。就是第二個了。
你的修改是沒有目的的,程式設計是要有的放矢的。你想改變陣列內的物件,還要宣告const,這就矛盾了。所以你的寫法是自相矛盾的。
c++類宣告中, t& operator[](int i); t operator[](int i
4樓:
這就是運算子過載的意思,函式過載也是這樣的。
5樓:匿名使用者
int sum (int a) 和 int sum (const int a);不是過載
但是int sum (int* a) 和 int sum (const int* a);卻是過載
當使用引用傳參時,有無const是不同的。使用指標傳參時,指向const物件的指標和指向非const物件的指標做形參的函式是不同的。非指標和非引用就是相同的
const物件才能呼叫const版本的function函式,而非const物件可以呼叫任意一種,通常非const物件呼叫不是const版本的function函式。
原因是:按照函式過載的定義,函式名相同而形參表有本質不同的函式稱為過載。在類中,由於隱含的this形參的存在,const版本的 function函式使得作為形參的this指標的型別變為指向const物件的指標,而非const版本的使得作為形參的this指標就是正常版本的指 針。
此處是發生過載的本質。過載函式在最佳匹配過程中,對於const物件呼叫的就選取const版本的成員函式,而普通的物件呼叫就選取非const版 本的成員函式。
c++中過載運算子operator [ ](int i)後的形參i如何在main函式中代入使用?
過載函式t&operator[ ](int i);中&有什麼作用
6樓:匿名使用者
&表示引用,即返回值是t*指標。由於操作在c++中一般是指標的地址增量操作,所以用&更合適。
7樓:匿名使用者
可以不返回引用,但是為了支援鏈式表示式,返回引用 。
as well as用法,as well的用法,
1 as well as常用來連線兩個並列的成分,作 也,還 解。它強調的是前一項,後一項只是順便提及。因此連線並列主語時,謂語動詞與前一項一致 而用not only but also.連線時,謂語動詞與後一項一致。如 your wife aswell asyou isfriendly tome.不...
keep用法,keep的用法
形容詞 adj.形容詞 adj.doing 一直做某事。doing.阻止做某事。a pet 飼養一個寵物。long may i keep this book keep指借。讓某種事物 保持某種狀態。及物動詞。vt.1.長期或永久 持有,保有。ikept itallthetime tokeep awa...
so的用法,SO的用法
回答您好,我已收到您的問題很榮幸為您解答,正在為您輸入請稍等片刻。需要注意的是喝上述飲品雖然可以起到一定的 減脂肪作用,但是但是單純憑藉飲品並不能很好滿足人們的 需求,還是建議選擇有氧運動和飲食相結合的方式,進行科學 希望我的回答對您有幫助,祝您生活愉快工作順利!更多2條 so的用法 5 回答您好,...