c++ - 在 C++ 中制作一个只有可变属性的类是不好的做法吗?

标签 c++ oop class visual-c++ namespaces

<分区>

我的这个类只有 protected 变量属性,例如 int healthint level,但没有方法。这是不好的做法吗?我将其用于保存游戏功能,它只需要使用变量,但不需要任何方法。文件如下所示:

人类.h:

// Human.h - Johnny P

#pragma once

namespace SharpEngine {
    class Human {
    protected:
        std::string name;
        int level;
        int health;
        int defense;
        int strength;
        int experience;
        int money;
        int inventory[10];
    };
}

人类.cpp

// Human.cpp - Johnny P

#include <string>
#include "Human.h"

最佳答案

好吧,“糟糕的做法”是一个有点沉重的术语。

让我们更确切地说,一个常见的模式是“哑数据”,其中类/结构只是为了包含数据。这与 C 兼容结构的“普通旧数据”(POD) 不太一样。

话虽如此,使用“protected”并不是典型的哑数据模式。在使用“protected”时,您暗示您将从它派生,这至少意味着一个虚拟析构函数。

关于c++ - 在 C++ 中制作一个只有可变属性的类是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13262995/

相关文章:

c++ - 从析构函数访问模板类构造函数的参数,可以吗?

c# - 继承时使用基类

java - Java中的静态嵌套类,为什么?

c++ - 关联容器的 lower_bound 复杂度 : member function vs non-member function

c++ - 覆盖 QGraphicsItem 的 paint() 和 mouseEvents()

php - 在父函数中调用子对象

java - 如何从原始类文件中找出依赖的类?

c++ - 将函数限制在命名空间

c++ - 这个数组大小模板是如何工作的?

c++ - 使用 Boost::asio 接收压缩数据