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 函式只在第二個類別宣告的位置點。
注意事項 |
---|
雖然整個第二個類別都必須是第一個類別朋友,您可以選取第一個類別中的哪一個函式的第二個類別的朋友。 |