C++中在头文件中Node *head;在其他实现文件中为什么不能被识别?
我的头文件中structNode{charname[20];charnum[20];intage;charsex[5];charaddress[20];chartel[2...
我的头文件中
struct Node
{
char name[20];
char num[20];
int age;
char sex[5];
char address[20];
char tel[20];
char snum[20];
Node * next;
};
class CStudent
{
public:
CStudent(Node *head=NULL);
friend void Input();
friend void Delete();
friend void Change();
friend void Find();
friend void Total();
friend void Display();
private:
Node *head;
};
在其它函数中再用head时就不会被识别,怎么回事?》 展开
struct Node
{
char name[20];
char num[20];
int age;
char sex[5];
char address[20];
char tel[20];
char snum[20];
Node * next;
};
class CStudent
{
public:
CStudent(Node *head=NULL);
friend void Input();
friend void Delete();
friend void Change();
friend void Find();
friend void Total();
friend void Display();
private:
Node *head;
};
在其它函数中再用head时就不会被识别,怎么回事?》 展开
1个回答
展开全部
概念没理解对啊, Node *head; 这个是类的成员变量啊, 只属于这个类
而且还设置成了私有成员, 外面不能直接访问的
首先对概念加强下了解吧
而且还设置成了私有成员, 外面不能直接访问的
首先对概念加强下了解吧
追问
我是在友元函数中使用私有成员的,应该可以访问,我定义的都是友元函数,
追答
呵呵,那还是不行,友元函数也要通过类来访问类的成员变量的,举个例子吧
class CStudent
{
public:
CStudent(Node *head=NULL);
friend void Input();
friend void Delete();
friend void Change();
friend void Find();
friend void Total();
friend void Display(CStudent & s);//////////必须这样
private:
Node *head;
};
void Display(CStudent & s)
{
Node *p = s.head;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询