operator 過載函式

2021-08-01 12:10:35 字數 449 閱讀 6324

今天在看書時發現了乙個有意思的地方:

class textblock

char& operator(size_t position)

private:

string text;

};int main ()

對於:類的運算子過載函式:char& operator(size_t position),其返回值是類成員text的引用,要特別當心,如果不是引用如果

char operator(size_t position),則ctext[0]='k',編譯器不會通過,因為此時,他只是物件text的乙個副本,並不是text。上述**中對過載函式的書寫並不科學,只是用該例子強調返回值是引用的重要性。

更科學的operator 相關寫法可參考effective c++條款3中的const成員函式。

operator過載整理

過載的操作符在類體中被宣告,宣告方式如同普通成員函式一樣,只不過他的名字包含關鍵字operator,以及緊跟其後的乙個c 預定義的操作符。可以用如下的方式來宣告乙個預定義的 操作符 class person inline bool operator const person ps const 實現方...

正確的過載operator

下面的段落中,我將介紹為使用者定義型別選擇正確的過載operator 的一般性的策略。第一步 選擇成員函式或是非成員函式?我們可以象使用類的成員函式一樣使用 或是 等二進位制操作符,例如 class string 然而,這種實現方式值得懷疑。在這種情況下,作為內建操作符的副本,過載後的操作符違背了內...

陷阱重重的C 賦值過載函式operator

曾經有c 高手說過 看乙個c 程式設計師功底是否夠硬,讓他寫個賦值過載函式就能看出來了!在我看來,這種說法並不誇張。因為能將operator 函式寫好確實需要紮實的基礎,其中的陷阱真不少。先看 string string operator const string rhs 此 就是沒有規避自我賦值,...