C フレンド関数は、別のクラスのプライベートおよび保護されたメンバーへのアクセスを提供する特別な関数です。非メンバー関数は、フレンド関数を宣言することで特定のクラスと対話できます。フレンド関数のアプリケーションには、演算子のオーバーロード、I/O 操作、および基礎となる実装が含まれます。たとえば、次の例に示すように、フレンド関数を使用して演算子をオーバーロードし、カスタム データ型間の操作をサポートできます。
C フレンド関数の詳細な説明: オブジェクト指向設計への応用##フレンド関数とは何ですか?
C では、フレンド関数は、別のクラスのプライベートおよび保護されたメンバーへのアクセスが許可される特別な関数です。これにより、非メンバー関数は、クラスのメンバー関数として宣言しなくても、特定のクラスと対話できるようになります。
フレンド関数を宣言するにはどうすればよいですか?
フレンド関数を宣言するには 2 つの方法があります:
クラス定義で宣言:class MyClass { friend void myFriendFunction(); };
class MyClass; // 前向声明 void myFriendFunction() { MyClass obj; // 访问 MyClass 的私有成员 }
Friend 関数には多くの応用があります
演算子のオーバーロード: などの演算子をオーバーロードできます。カスタム データ型間の操作。
I/O 操作:
基礎となる実装:
フレンド関数は、クラスのプライベート メンバーにアクセスして、複雑なアルゴリズムや内部データ構造を実装できます。 次のコード例は、フレンド関数を使用して 演算子をオーバーロードし、加算をサポートする方法を示しています。 2 つの
Vector オブジェクト: <pre class='brush:cpp;toolbar:false;'>class Vector {
int x, y;
public:
Vector(int _x, int _y) : x(_x), y(_y) {}
friend Vector operator+(const Vector& v1, const Vector& v2);
};
Vector operator+(const Vector& v1, const Vector& v2) {
return Vector(v1.x + v2.x, v1.y + v2.y);
}
int main() {
Vector v1(1, 2), v2(3, 4);
Vector v3 = v1 + v2; // 使用重载的 + 运算符
return 0;
}</pre>
上の例では、operator
関数は、非メンバー関数が
x および
y のプライベート データ メンバー。
以上がC++ フレンド関数の詳細説明: オブジェクト指向設計におけるフレンド関数の応用?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。