所以代码的格式如下:
class patient{
public:
char FirstName[30];
char LastName[30];
char SID[20];
};
class Register{
private:
int PatientNum;
patient List[];
public:
void OutputList ();
};
之后我就像使用寄存器一样得到了这个函数:
void Register::OuputList() {...}
现在,这都在头文件中。但是,当我尝试在main中实现OutputList()函数时,它不会让我。我该如何解决这个问题,所以主要是函数会编译?
此外,我还有另一个在患者类范围之外定义的功能,例如:
patient Add(){...}
以Add()形式使用此函数时;在主要方面,它有效。
====== EDIT ===================================== =============================
我已经解决了编译问题并在main中定义了一个Register指针对象:
Register *q;
但是,我现在的问题是该函数不显示从add函数中获取的数据。我编辑的register :: OutputList()的主要代码是:
q -> OutputList();
这会编译,但它不会显示添加内容(应该如此)。我在想它指向程序中没有分配的内存?知道怎么解决吗?
答案 0 :(得分:1)
您必须先创建一个Register对象,然后才能调用其任何函数。如果你需要指针那么它必须被初始化,所以它指向对象。一种方法是......
Register* q = new Register();
答案 1 :(得分:0)
现在,这都在头文件中。但是,当我尝试在main中实现函数>> OutputList()时它不会让我。我该如何解决这个问题,所以主要是函数会编译?
我没有完全找到您,但Register *q;
在您的代码中未初始化;