我试图在 header 中声明一个类对象,但无法使其工作。我目前有 2 个头文件和 2 个 cpp 文件,它们定义了每个函数的功能。这些类称为 Heltal 和 Array,它们都位于自己的头文件中(heltal.h 和 array.h)。
我试图在 Array 类的私有(private)部分中声明 Heltal 类对象,但无论我做什么,我都找不到声明它的方法。我尝试将 heltal.h header 包含到 array.h header 中,但随后它开始提示被重新定义。
在 array.cpp 中声明它效果很好,但我希望将其定义在 header 中。
以下是文件目前的样子:
heltal.h
class Heltal {
public:
Heltal();
Heltal(int tal);
~Heltal();
void set(int tal);
bool operator < (const Heltal &heltal) const
{
return (heltal < heltal.heltal);
}
bool operator > (const Heltal &heltal) const
{
return (heltal > heltal.heltal);
}
private:
int heltal;
};
数组.h
#include <vector>
class Array {
public:
Array();
Array(int in);
~Array();
int Random(int min, int max);
private:
Heltal h;
int size;
};
两个 header 都包含在 main.cpp 中
最佳答案
当您将 Heltal.h
包含在 Array.h
中时,您就沿着正确的道路开始了。
添加include guards添加到您的标题中,这将帮助您避免重复包含:
#ifndef HELTAL_H
#define HELTAL_H
class Heltal {
...
};
#endif
现在您可以安全地将 Heltal.h
包含在 Array.h
的顶部,您的问题将得到解决。
关于c++ - 在类头中声明类对象 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647299/