c primer學習之 過載

2021-05-24 07:10:08 字數 983 閱讀 6627

賦值(=)、下標()、呼叫(())和成員訪問箭頭(->)等操作符必須定義為成員,將這些操作符定義為非成員函式將在編譯時標記為錯誤。

6。操作符->

可以為類型別的物件過載成員訪問操作符箭頭(->),它必須被定義為乙個類的成員函式。

假設我們想定義乙個類型別來代表乙個指向screen類物件的指標,定義如下:

class screenptr ;

screenptr型別的物件的定義必須提供初始值:乙個screen型別的物件,screenptr物件將指向它,否則定義就出錯。

為使screenptr類的行為像內建指標,我們必須在定義一些過載操作符,定義:解引用操作符(*)和成員操作符箭頭(->):

class screenptr

screen* operator->()

例程:class screen

inline screen& end();

inline screen& forward();

inline screen& back();

inline screen& up();

inline screen& down();

char lcfun(int);

private:

string _screen;

string::size_type _cursor;

short _height;

short _width;

inline int row();

};class screenptr

screen *operator->()

screen &operator*()

private:

screen *ptr;

};int main(int argc, char *argv)

screen screen(1,2);

screenptr ptr(&screen);

coutreturn 0;

過載 操作符 c primer

istream operator istream in,sales item s double price in s.isbn s.units sold price check that the inputs succeeded if in s.revenue s.units sold price ...

C primer閱讀之過載運算與型別轉換

第14章 過載運算與型別轉換 1.當乙個過載的運算子時成員函式時,this繫結到左側運算物件,成員運算子函式顯式地參數量比運算物件地數量少乙個。2.我們把運算子定義為成員函式時,它地左側運算物件必須是所屬類地物件。3.具有對稱性的運算子,一般定義為普通的非成員函式。比如算術和關係運算子。4.輸入輸出...

C Primer 學習筆記之關聯容器

關聯容器 關聯容器支援通過鍵來高效地查詢和讀取元素。兩個基本的關聯容器型別是map和set。map的元素以鍵 值對的形式組織 鍵用作元素在map的索引,而值則表示所儲存和讀取的資料。set僅包含乙個鍵,並有效地支援關於某個鍵是否存在的查詢。set和map型別的物件不允許為同乙個鍵新增第二個元素。如果...