Я хочу создать класс «func» как друга класса «node». но, к сожалению, функции в классе func не могут получить доступ к закрытым членам класса node.for например, в функции «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;
}
}
Другая проблема заключается в том, что, когда я хочу сделать копию класса «узла», чтобы скопировать членов массива п в него с этим кодом:
void func::expand()
{
node b=n;
}
он говорит, что «конструктор не может преобразовать из межд [9] к узлу
как я могу скопировать меня mbers of n в массив temp в этой программе?
'void node :: expand' Класс' node' не имеет члена с именем 'expand' –
' n' является нестационарным членом данных 'node'. Вам нужен экземпляр 'node' для доступа к этому элементу. –
, но я определил его в узле класса, и поскольку node и func являются друзьями, расширение должно иметь к нему доступ. –