C では、フレンド関数をクラスの外で宣言できますが、フレンド関数はクラスの定義のすぐ隣に、フレンド キーワードで始まる必要があり、クラスのスコープによって制限されません。
#C フレンド関数はクラスの外で宣言できますか?
序文
フレンド関数は、クラスの外部のクラスのプライベート/保護されたメンバーにアクセスする特別な関数です。これらはクラス定義の外で宣言されます。この記事では、C のフレンド関数のクラス外宣言ルールについて説明し、説明のための実践的な例を示します。
#クラス外宣言のルールC では、フレンド関数をクラス外で宣言できますが、次のルールに注意する必要があります。
キーワードで始まる必要があります。
実際的なケース
以下は、クラス外のフレンド関数の宣言を示す実際的なケースです:// 类 Person 定义 class Person { private: std::string name_; // 私有成员变量 public: Person(const std::string& name) : name_(name) {} }; // 友元函数声明(在 Person 类外) friend std::ostream& operator<<(std::ostream& os, const Person& person); // 主函数 int main() { Person p("John Doe"); std::cout << p << std::endl; // 调用友元函数 } // 友元函数定义(在 Person 类外) std::ostream& operator<<(std::ostream& os, const Person& person) { os << person.name_; return os; }
コードの説明この例では:
クラス定義にはプライベート メンバー変数
name_ が含まれています。
この関数は、
Person クラスのフレンド関数として宣言され、クラスの定義の後に配置されます。
オブジェクトが作成され、その
name_ 値が出力されます。これには、friend 関数を呼び出す必要があります。
プライベート メンバー変数にアクセスし、その値を出力します。
結論C のフレンド関数はクラスの外で宣言できますが、クラス定義のすぐ隣に配置し、
friend キーワードを使用する必要があります。 。フレンド関数の宣言はクラス スコープによって制限されないため、クラス外のプライベート メンバーに柔軟にアクセスできます。明確さと読みやすさのために、クラス定義の近くでフレンド関数を宣言することをお勧めします。
以上がC++ フレンド関数はクラス外で宣言できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。