【问题标题】:Is it a waste to create a class with only 1 object in c++ [closed]在 C++ 中创建一个只有 1 个对象的类是不是很浪费 [关闭]
【发布时间】:2014-10-09 02:03:58
【问题描述】:

如果您想存储关于 1 个事物(例如用户)的信息,那么创建一个类会不会是一种浪费?

这个类只能保存 1 个对象,即用户。对我来说,如果使用一个类,它似乎干净且易于理解,但我不知道它是否浪费。

class c_User{
public:
    int GetAge();
    string GetName();

    void SetAge();
    void SetName();
private:
    int m_userAge;
    string m_userName;
}

这些可以在 main.js 中巧妙地访问。一旦他们设置好了。它也可以有自己的功能,并且有很多控制权。

int main(){
    c_User User;
    //Set

    //Get
    User.GetAge();
    User.GetName();
}

以下是一种无需使用类即可实现相同目的的方法。设置好之后。

int main(){
    int userAge;
    string userName;
    //Set

    //Get
    userAge;
    userName;
}

它们实际上并没有被用于上述任何事情。但是访问它们,然后以某种方式使用它们的想法。

我不确定没有类的方法在拥有更多信息后是否会变得混乱。我所做的一切都是小规模的,但我正试图转移到具有更多信息的更大项目。

创建一个只有 1 个对象的类是不是很浪费?

【问题讨论】:

  • 定义“浪费”/“浪费”。
  • 如果有多个程序要使用它,那么它可能不会浪费。在规划任何项目时,您必须权衡设计实施的收益与成本。过度设计您的应用程序是没有意义的,如果我正在编写一个简单的文本处理工具来处理客户信息,我会创建一个功能齐全的客户类来表示它们吗?疑。为什么要在 10 分钟的工作上浪费 20 分钟?
  • 我通常会继续定义类。您以后可能需要更多实例,因此请避免使用单例(反)模式,除非类型的正确性确实取决于只有一个实例(至少一次)。
  • 一个类就是一个类型。当它对你的代码有帮助时,你就会引入一种新类型。

标签: c++ class logic


【解决方案1】:

它允许您将两个值视为一个实体,这总是好的 - 从概念上讲,一个实体就是您所拥有的。由于您的类是一个包含两个值的简单容器,其中包含 getter 和 setter,因此它没有实现任何封装,可以更简单地写为:

struct User 
{
    int Age;
    string Name;
};

现在定义它的语法成本似乎更符合其实际用途。

【讨论】:

    【解决方案2】:

    我想说,在用 C++ 编写时坚持使用类通常是一种很好的做法。在这种特殊情况下,您当然可以使用结构。但是随着语言的发展,你对类范式了解得越多越好。

    在 C++ 中编写“c 风格”代码是可行的,但实际上可能会导致未来大规模程序出现优化问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      • 2016-10-14
      • 1970-01-01
      相关资源
      最近更新 更多