共用方式為


Friend 宣告

如果您宣告 friend 函式沒有先前宣告的該函式會匯出到封入的 nonclass 範圍中。

Friend 宣告中宣告的函式都視他們已經宣告使用extern關鍵字。 (如需有關extern,請參閱靜態儲存類別規範。)

雖然具有全域領域的函式可以宣告為其原型之前的朋友,成員函式不可以宣告為 friends 的外觀,其完整的類別宣告之前。 下列程式碼將說明這個命令失敗的原因:

class ForwardDeclared;   // Class name is known.
class HasFriends
{
    friend int ForwardDeclared::IsAFriend();   // C2039 error expected
};

上述範例中輸入類別名稱ForwardDeclared範圍,但完整的宣告,明確地說,宣告函式的部分IsAFriend — 「 並非 」 已知。 因此, friend類別中的宣告HasFriends就會產生錯誤。

宣告是一部朋友的兩個類別,您必須指定整個第二個類別,成為第一個類別的好友。 這項限制的原因是編譯器具有足夠的資訊,來宣告個別的 friend 函式只在第二個類別宣告的位置點。

注意事項注意事項

雖然整個第二個類別都必須是第一個類別朋友,您可以選取第一個類別中的哪一個函式的第二個類別的朋友。

請參閱

參考

friend (C++)