Re: [問題] overloading [] 疑問!!
※ 引述《littleshan (我要加入劍道社!)》之銘言:
: 我覺得你的問題在於你可能不太清楚 const member function 的意義。
: 所謂的 const member function 就是在宣告時於宣告式後加上 const:
: class Foo {
: public:
: void f(); // normal member function
: int g() const; // const member function
: private:
: int data;
: };
: const member function 的意思是在這個 function 中,並不會去改變
: 物件中的 member variable(註)。因此若你宣告一個 const Foo 物件,
: 你不能呼叫 f(),因為 f() 的內部可能會改變 member variable,但
: 你可以呼叫 g()。
: void Foo::f()
: {
: data = 10; // OK
: }
: int Foo::g() const
: {
: data = 10; // 錯誤,g() 是 const member function,不能修改 data
: return data; // 這行 OK,因為 return 並不會改變 data 的值
^^^^^^^
: }
剛剛對const有點模糊了... 爬了文
可是我發現little大這例子好像有點問題
我之前也是看這篇 觀念上說 const是修飾this
但是return data 這個data好像也會被冠上const 所以這樣return會compile 錯
想問一下修飾this 意思是說 他底下的member都被冠上const嗎?
不太會解讀 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.73.81
→
01/07 23:49, , 1F
01/07 23:49, 1F
→
01/07 23:49, , 2F
01/07 23:49, 2F
→
01/08 00:00, , 3F
01/08 00:00, 3F
→
01/08 00:01, , 4F
01/08 00:01, 4F
→
01/08 00:06, , 5F
01/08 00:06, 5F
→
01/08 00:14, , 6F
01/08 00:14, 6F
→
01/08 00:14, , 7F
01/08 00:14, 7F
→
01/08 00:14, , 8F
01/08 00:14, 8F
→
01/08 00:15, , 9F
01/08 00:15, 9F
→
01/08 00:17, , 10F
01/08 00:17, 10F
→
01/08 00:18, , 11F
01/08 00:18, 11F
→
01/08 00:21, , 12F
01/08 00:21, 12F
→
01/08 01:23, , 13F
01/08 01:23, 13F
→
01/08 01:23, , 14F
01/08 01:23, 14F
→
01/08 01:24, , 15F
01/08 01:24, 15F
→
01/08 01:24, , 16F
01/08 01:24, 16F
→
01/08 02:18, , 17F
01/08 02:18, 17F
→
01/08 02:18, , 18F
01/08 02:18, 18F
→
01/08 02:33, , 19F
01/08 02:33, 19F
→
01/08 02:34, , 20F
01/08 02:34, 20F
→
01/08 02:35, , 21F
01/08 02:35, 21F
→
01/08 02:37, , 22F
01/08 02:37, 22F
→
01/08 02:45, , 23F
01/08 02:45, 23F
→
01/08 02:47, , 24F
01/08 02:47, 24F
→
01/08 02:48, , 25F
01/08 02:48, 25F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章