[問題] 同樣method的const與non-const版本該如 …
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
對於同樣的method,我希望他有const跟non-const版本(STL很多container都有這種東西)
應該要如何實做而不用把一樣的程式碼多撰寫一次?
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
ANSI C++
有問題的code: (請善用置底文標色功能)
class A{
int f() const;
int f();
};
這兩個method該如何實做一份就好?
補充說明:
會有這樣的需求其實是因為 我有一個功能 我希望他達成這樣的目的:(T表示某個type)
class A{
public:
const T& f() const;
protected:
T& f();
}
也就是外人只能讀取 而不能透過這個function的reference來修改我的內容
我嘗試過
const T& A::f() const{
return f();
}
T& A::OAf(){
/*...*/
}
這樣的形式 但是這樣不可能成功阿.....|||
就算是反過來讓non-const的method去call const的method 似乎也有一樣的問題
都是遞迴....而不會真的去call到另外一個
就算用上const_cast好像也怪怪的....
我想不通該如何實做才是比較正確的方法 麻煩各位指教一下 謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.154.30
※ 編輯: CrBoy 來自: 140.116.154.30 (05/10 02:06)
→
05/10 02:26, , 1F
05/10 02:26, 1F
推
05/10 02:42, , 2F
05/10 02:42, 2F
→
05/10 07:33, , 3F
05/10 07:33, 3F
→
05/10 07:34, , 4F
05/10 07:34, 4F
推
05/10 10:54, , 5F
05/10 10:54, 5F
→
05/10 12:08, , 6F
05/10 12:08, 6F
推
05/10 12:10, , 7F
05/10 12:10, 7F
→
05/10 12:10, , 8F
05/10 12:10, 8F
→
05/10 13:03, , 9F
05/10 13:03, 9F
→
05/10 13:03, , 10F
05/10 13:03, 10F
→
05/10 13:03, , 11F
05/10 13:03, 11F
→
05/10 13:04, , 12F
05/10 13:04, 12F
→
05/10 13:04, , 13F
05/10 13:04, 13F
→
05/10 13:05, , 14F
05/10 13:05, 14F
→
05/10 13:08, , 15F
05/10 13:08, 15F
→
05/10 13:08, , 16F
05/10 13:08, 16F
→
05/10 13:08, , 17F
05/10 13:08, 17F
→
05/13 02:09, , 18F
05/13 02:09, 18F
→
05/13 02:10, , 19F
05/13 02:10, 19F