仅为一个对象创建一个类

时间:2016-06-14 05:51:27

标签: c++ class oop

我认为这是一个非常简单的问题,但我似乎无法通过Google搜索找到一个好的答案。

在使用C ++编程时(作为初学者),我经常喜欢使用类来组织我的代码。但是,当我只需要该类的一个对象时,是否有理由不创建类?当我学习面向对象编程时,我理解当你需要很多时,类是一种描述某些对象的方法。

我想我的问题很简单:如果该类只需要一个对象,那么创建一个类是否常见?

4 个答案:

答案 0 :(得分:3)

即使您只需要实例化一次类的对象,创建具有自己的变量和函数的类头文件而不是在main中定义它们是有益的。创建类强化了封装的概念,这使代码更易于维护(您可以重用类和/或更新功能)。此外,创建一个类将保持格式一致,并在重新阅读或邀请某人查看您的程序时使代码易于阅读。

答案 1 :(得分:2)

是的......出于各种原因。

  1. 将来可能会发生变化,您需要多个实例,您将不得不重写。
  2. 您仍然将所有必需的变量封装在类中。
  3. 查看单例模式https://en.wikipedia.org/wiki/Singleton_pattern的优点。一个
  4. 更容易实现线程安全
  5. 您不需要实施双重检查锁定模式https://en.wikipedia.org/wiki/Double-checked_locking
  6. C ++提供了一种初始化单例的好方法

    Singleton& instance()
    {
         static Singleton s;
         return s;
    }
    

    否,如果需要,它立即是线程安全的

答案 2 :(得分:2)

  

如果该类只需要一个对象,那么创建一个类是否常见?

是。有一种模式。它被称为The Singleton Pattern

关于这个主题的SO也有很多问题和答案。请参阅https://stackoverflow.com/search?q=%5Bc%2B%2B%5D+is%3Aq+singleton

答案 3 :(得分:0)

是的,还有一种模式:单身模式。 https://en.wikipedia.org/wiki/Singleton_pattern

使用此模式,您只能创建一个对象,而不是更多。