C 過載操作符新發現

2021-05-26 10:54:19 字數 817 閱讀 5718

今天在看mfc原始碼是碰到這樣的形式:

afx_inline operator type*()

afx_inline type* operator->()

過載*和->操作符,由於很長時間沒看c++ primer,很多東西都已經忘記,順手拿起旁邊的這本寶典。關於這兩個操作符的過載,描述的和上面的**不一致。

自己寫了點測試**來分析一下,結果確實有兩種方式:

class screen;  

class screenptr

#if 0

screen& operator *()

#else

operator screen*()

#endif

screen* operator->()

int k;

screen *ptr;

int m;

};

void main()

第一種形式:

screen& operator *()
只適應
int j = (*ps).n;
這種情況下的呼叫。

在這樣的**編寫方式下就有問題了:

screen *pscr = ps;

第二種方式更為通用,可以相容兩種情況:

operator screen*()

C 引用新發現

今天在 c primer plus 上學習模板的時候看到了這樣一段 簡化版 include include include include using namespace std template class pair template t1 pair first return a template...

C 操作符過載

1.作為成員過載 class myclass public myclass operator const myclass d cons friend myclass operator const myclass a1,const myclass a2 關於返回值型別的討論 呼叫者堆疊裡返回乙個物件效...

C 過載操作符

過載操作符 一 過載操作符的定義 1.過載操作符的結構 返回型別 operator 需要過載的操作符 形參列表 注意 形引數目應和運算元數目相同。2.過載操作符的幾條注意事項 1 過載的操作符名不能通過連線其他合法符號來建立任何新的操作符。如 2 過載操作符必須具備至少乙個類型別或列舉型別的運算元。...