简单的类导致错误

问题描述:

我有3个类在C++编码。它们都很简单,但编译器给出了很多错误。 cpp文件和头文件中的每个类。可能的问题是什么? 其中之一是“基类未定义”。简单的类导致错误

class re { 
    int i; 
    int j; 
    string a; 
    re(int,int,int); 
    ~re(); 
} 

class Pre:public re { 
    int k; 
    public: 
    Pre(int,int,int); 
    ~Pre(); 
} 

class MPre:public Pre { 
    int z; 
    public: 
     MPre(int); 
    ~Mpre(int); 
} 
+8

类定义应以分号(“;”)结尾。你在实际的代码中使用了分号吗? (你没有在你的例子中使用它)。 – mfontanini 2012-04-19 18:53:35

+2

你可以发布错误,我的意思是你粘贴的可能是因为在类定义的末尾没有终止';'但我很难猜测。 – EdChum 2012-04-19 18:53:46

+0

我已经放了分号,仍然有错误。 – 2012-04-19 18:55:14

可能出现的错误:

  • 重类的构造函数是不公开的。你知道吗?

  • MPre构造函数获取一个输入,因此您必须为Pre类编写默认构造函数。

  • 添加头文件时要小心。例如,Pre类需要re class的头文件。

  • 而且,除非添加指针变量的类

+1

如果你要使用继承,你需要一个虚拟析构函数。 – AlexTheo 2012-04-19 18:56:12

+2

如果你有任何分配的资源,你也需要一个析构函数,不仅仅是内存,还有文件等。 – 2012-04-20 03:47:23

有关错误undefined base class你不需要写析构函数,我想你还没有#include d文件中的类re是在其他类所在的文件中声明。

类声明中缺少分号。也可以将不同的.h .cpp文件中的所有类分开,这样可以避免在不需要的情况下包含不需要的代码。同样在继承的情况下,确保你的析构函数是虚拟的,否则会产生内存泄漏。

此外,重构的构造函数不公开使其公开。