2015-05-05 56 views

回答

1

無論何時您需要通過與班級無關的功能來訪問班級的「內臟」(即私人成員)。一個典型的例子是

friend std::ostream& operator<<(std::ostream& os, const Foo& foo) 

你超載,這樣就可以簡單地通過輸入輸出流顯示你的對象,像

std::cout << my_object; 

在這種情況下,假設你需要授予類的私有成員訪問,功能應該是friend。它甚至不能成爲一個成員函數,因爲在這種情況下,你應該稱呼它

my_object << (std::cout); 

看起來,嗯,很奇怪。