ホームページ  >  記事  >  バックエンド開発  >  C++ フレンド関数の詳細説明: 多重継承におけるフレンド関数の役割は何ですか?

C++ フレンド関数の詳細説明: 多重継承におけるフレンド関数の役割は何ですか?

WBOY
WBOYオリジナル
2024-04-29 18:39:01852ブラウズ

フレンド関数を使用すると、非メンバー関数がプライベート メンバーにアクセスし、多重継承で役割を果たすことができ、派生クラス関数が基本クラスのプライベート メンバーにアクセスできるようになります。

C++ 友元函数详解:友元函数在多继承中的作用?

#C フレンド関数の詳細な説明: 多重継承におけるフレンド関数の役割

フレンド関数の概要#フレンド関数は、クラスのオブジェクトを必要とせずにプライベート メンバーへのアクセスが許可される特別な関数です。これは、非メンバー関数がプライベート データにアクセスできるようにするためによく使用されます。

構文:

class ClassName {
    ... // 类成员
    friend FunctionName;
};

多重継承におけるフレンド関数の役割

多重継承では、派生クラスのデータ メンバーまた、メソッドは複数の基本クラスから継承できます。派生クラスの関数が基本クラスのプライベート メンバーにアクセスする必要がある場合、その関数をフレンド関数として宣言できます。

実践的なケース

Base

クラスと、Base を継承する派生クラスDerived があるとします。 : <pre class='brush:cpp;toolbar:false;'>class Base { private: int data; }; class Derived : public Base { public: void printData() { std::cout &lt;&lt; data &lt;&lt; std::endl; } friend void printData2(Derived&amp; obj); };</pre>

data

Base のプライベート メンバーであるため、Derived## の printData() 関数# 直接アクセスする方法はありません。したがって、printData2() 関数を Derived のフレンド関数として宣言します。

void printData2(Derived& obj) {
    std::cout << obj.data << std::endl;
}
これで、printData2()

は ## にアクセスできるようになります。 #Derived

のプライベート data メンバー。 使用法:

int main() {
    Derived obj;
    obj.printData();
    printData2(obj);
}

出力:

0
0

以上がC++ フレンド関数の詳細説明: 多重継承におけるフレンド関数の役割は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。