今天在看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 過載操作符必須具備至少乙個類型別或列舉型別的運算元。...