2 つのクラス間のフレンド機能に問題があります。いくつかのコードを見てみましょう:
ファーストクラス:
#ifndef _FIRST_H_
#define _FIRST_H_
//#include "Second.h"
#include <string>
class Second;
class First
{
friend void Second::fun();
std::string str = "Dziala\n";
public:
First();
~First();
};
#endif
および 2 番目のクラス:
#ifndef _SECOND_H_
#define _SECOND_H_
#include<iostream>
#include "First.h"
class Second
{
First fObj;
public:
Second();
~Second();
void fun() { std::cout << fObj.str; }
};
#endif
CLASSを友達にしようとしても問題ありません。上記の例のように FUNCTION をフレンドにすると問題が発生します。これは First クラスの #include "Second.h" で修正できますが、インクルード ループになります。これを行う方法はありますか?