0

所以代码的格式如下所示:

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() 时,它不会让我这样做。我该怎么做,所以在 main 函数中会编译?

此外,我还有一个在患者类范围之外定义的函数,例如:

patient Add(){...}

以 Add() 的形式使用此函数时;总的来说,它有效。

=========编辑========================================= ===========================

我已经修复了编译问题并在主目录中定义了一个寄存器指针对象:

Register *q;

但是,我现在的问题是该函数不显示从 add 函数中获取的数据。我为 register::OutputList() 编辑的主要代码是:

q -> OutputList();

这会编译,但是它不会显示 add 中的任何内容(应该如此)。我在想它指向程序中没有分配的内存?知道如何解决吗?

4

2 回答 2

1

您必须先创建一个 Register 对象,然后才能调用它的任何函数。如果您需要指针,则必须对其进行初始化,使其指向对象。一种方法是...

Register* q = new Register();
于 2013-11-02T21:39:28.700 回答
0

现在,这一切都在一个头文件中。但是,当我尝试在 main 中实现函数 >>OutputList() 时,它不会让我这样做。我该怎么做,所以在 main 函数中会编译?

我没有完全理解您,但Register *q;在您的代码中未初始化;

于 2013-11-02T21:40:12.577 回答