c++ - 在类头中声明类对象 C++

标签 c++ class object declare

我试图在 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/

相关文章:

java - 弹跳球,努力获得超过 1 个球(正在处理)

java - 以编程方式导入 C/C++ 项目 eclipse

iOS SDK : about using properties when creating objects programmatically?

c++ - 模板化类中的析构函数实现

c++ - 如何重载<<操作符,使其仅影响类的成员?

arrays - 如何向数组中的现有对象添加新的键和值(Angular)

javascript - 从另一个文件访问变量和方法

c++ - 如何使用旧的 stdlib 和 libc 在旧的 Linux 发行版中构建 C++17 应用程序?

c++ - 我可以只为某些特化定义静态 constexpr 数据成员吗?

c++ - 在构造函数中设置 C++ 类 char*