[問題] overloaded operator為何可load private?
開發平台(Platform): (Ex: Win10, Linux, ...)
Mac
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
問題(Question):
#include<iostream>
using namespace std;
class Complex
{
private:
int value ;
public :
Complex(int value =0)
{
this->value = value ;
}
void show()
{
cout << this->value << endl ;
}
Complex add(Complex c1)
{
Complex temp ;
temp.value = this->value + c1.value ;
return temp;
}
};
int main()
{
Complex a(1), b(2) ;
a.show() ;
Complex c = a.add(b) ;
c.show() ;
}
//程式碼結束 ----------------------------------
問題:
Complex add(Complex c1)
{
temp.value = this->value + c1.value ;
return temp;
}
想請問在這邊 為何這裏可以存取
c1 的private value值
我認為他的scope應該是在"Complex a"
所以"Complex b"裡面的private "value"
應該是沒辦法讀到
有下一些關鍵字但是好像都沒有提到
想問大大可否提供一些關鍵字給我參考 謝謝
-------------------
更新:謝謝大大提供的資訊
補上我查到ISO Private在Class中的定義
Member access control :
private; that is, its name can be used only by members and
friends of the class in which it is declared
所以不同Object在private的值/函式 在相同class之下 是可以互相存取的
如果我有誤解麻煩大大再提點我一下 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.248.245 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1589596983.A.198.html
→
05/16 10:51,
3年前
, 1F
05/16 10:51, 1F
→
05/16 10:52,
3年前
, 2F
05/16 10:52, 2F
→
05/16 10:57,
3年前
, 3F
05/16 10:57, 3F
→
05/16 11:14,
3年前
, 4F
05/16 11:14, 4F
---------------
發現跟operator overloading 沒關係 所以簡化一下問題
推
05/16 13:57,
3年前
, 5F
05/16 13:57, 5F
→
05/16 17:28,
3年前
, 6F
05/16 17:28, 6F
→
05/16 17:28,
3年前
, 7F
05/16 17:28, 7F
→
05/16 17:30,
3年前
, 8F
05/16 17:30, 8F
推
05/16 17:48,
3年前
, 9F
05/16 17:48, 9F
→
05/16 17:49,
3年前
, 10F
05/16 17:49, 10F
→
05/16 17:49,
3年前
, 11F
05/16 17:49, 11F
→
05/16 18:24,
3年前
, 12F
05/16 18:24, 12F
→
05/17 13:06,
3年前
, 13F
05/17 13:06, 13F
是在同Class 不同Object這邊
推文大大都講得蠻清楚了
推
05/17 23:43,
3年前
, 14F
05/17 23:43, 14F
→
05/18 21:24,
3年前
, 15F
05/18 21:24, 15F
→
05/18 21:24,
3年前
, 16F
05/18 21:24, 16F
→
05/18 21:24,
3年前
, 17F
05/18 21:24, 17F
不太懂你提的"a,b並不會有自己的scope"這點
但是的確我結論沒補充到 是否有釐清scope的疑問
→
05/18 22:35,
3年前
, 18F
05/18 22:35, 18F
→
05/18 22:36,
3年前
, 19F
05/18 22:36, 19F
→
05/18 22:37,
3年前
, 20F
05/18 22:37, 20F
→
05/18 22:38,
3年前
, 21F
05/18 22:38, 21F
→
05/18 22:38,
3年前
, 22F
05/18 22:38, 22F
※ 編輯: joejoe14758 (118.163.125.121 臺灣), 05/19/2020 14:52:37