我在两个班级之间遇到了朋友功能的问题。让我们看一些代码:
一级:
#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
和二等:
#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,就会出现问题。我可以通过头等舱中的#include "Second.h" 来解决这个问题,但随后它将是包含循环。你知道怎么做吗?