所以代码的格式是这样的:
class patient{
public:
char FirstName[30];
char LastName[30];
char SID[20];
};
class Register{
private:
int PatientNum;
patient List[];
public:
void OutputList ();
};
然后我像这样使用 Register 得到了函数:
void Register::OuputList() {...}
现在,这一切都在一个头文件中。但是,当我尝试在 main 中实现函数 OutputList() 时,它不允许我这样做。我该怎么做才能让主要的函数通过编译?
此外,我还有另一个函数是在患者类的范围之外定义的,例如:
patient Add(){...}
以Add()形式使用该函数时;总的来说,它有效。
=========编辑=================================== =============================
我修复了编译的问题,在main中定义了一个Register指针对象:
Register *q;
但是,我现在的问题是该函数不显示从添加函数获取的数据。我为 register::OutputList() 编辑的主要代码是:
q -> OutputList();
这会编译,但是它不会显示来自添加的任何内容(它应该如此)。我在想它指向程序中没有分配的内存吗?知道如何解决吗?
最佳答案
您必须先创建一个 Register 对象,然后才能调用它的任何函数。如果您需要指针,则必须对其进行初始化,使其指向对象。一种方法是...
Register* q = new Register();
关于c++ - 类和类中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19747138/