0
當我可以決定一個特定的函數/操作符應該被聲明爲一個類的一個朋友函數/操作符還是一個類的成員函數/操作符。作爲會員與朋友的職能是什麼標準?
當我可以決定一個特定的函數/操作符應該被聲明爲一個類的一個朋友函數/操作符還是一個類的成員函數/操作符。作爲會員與朋友的職能是什麼標準?
無論何時您需要通過與班級無關的功能來訪問班級的「內臟」(即私人成員)。一個典型的例子是
friend std::ostream& operator<<(std::ostream& os, const Foo& foo)
你超載,這樣就可以簡單地通過輸入輸出流顯示你的對象,像
std::cout << my_object;
在這種情況下,假設你需要授予類的私有成員訪問,功能應該是friend
。它甚至不能成爲一個成員函數,因爲在這種情況下,你應該稱呼它
my_object << (std::cout);
看起來,嗯,很奇怪。