我想做“func”类作为“节点”类的朋友。但不幸的是,func类中的函数无法访问节点类的私有成员。例如,在函数“expand”中,我收到一个错误,指出n是未定义的。因为我是编程新手,你会告诉我什么是问题吗?朋友类无法识别
#include<iostream>
using namespace std;
#define max 9 //we use a const
class node
{
private:
int n[max];
friend class func;
};
class func
{
public:
bool isgoal(int);
bool isvalid(int);
void expand();
};
扩大功能:
void func::expand()
{
for(int i=0;i<=8;i++)
{
n[i]=0;
}
}
的另一个问题是,当我想使类“节点”的副本,以阵列的成员n为进其与此代码复制:
void func::expand()
{
node b=n;
}
它说,“构造不能转换为int [9]到节点
我怎么能复制我在这个程序中将n个人变成临时数组?
'void node :: expand'类'node'没有名为'expand'的成员 –
'n'是'node'的非静态数据成员。你需要一个'node'的实例来访问这个成员。 –
但我已经在类节点中定义了它,并且由于节点和func是朋友,所以展开应该访问它。 –