共用方式為


Friend 宣告

如果您宣告先前未宣告的 friend 函式,會將該函式匯出至封入 nonclass 範圍。

在 friend 宣告中宣告的函式視同使用 extern 關鍵字宣告 (如需 extern 的詳細資訊,請參閱靜態儲存類別指定名稱)。

雖然可以在全域範圍函式的原型之前將此類函式宣告為 friend,但不可在其完整類別宣告出現之前將成員函式宣告為 friend。 下列程式碼示範失敗的原因:

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

上述範例在範圍中輸入類別名稱 ForwardDeclared,不過,完整宣告 (明確地說是宣告函式 IsAFriend 的部分) 是未知的。 因此,在類別 HasFriends 中的 friend 宣告會產生錯誤。

若要宣告兩個類別為彼此的 Friend,必須將第二個類別完整指定為第一個類別的 friend。 這項限制的理由是編譯器的資訊只足以在宣告第二個類別的點宣告個別 friend 函式。

注意事項注意事項

雖然整個第二個類別必須是第一個類別的 friend,但您可以第一個類別中的哪些函式是第二個類別的 friend。

請參閱

參考

friend (C++)