c++ - 当不需要创建多个对象时,是否应该将类的成员变为静态的?

标签 c++ oop class static

class AA
{
    public:
        AA ();
        static void a1          ();
        static std :: string b1 ();
        static std :: string c1 (unsigned short x);
};

我的类(class)不会有不同的对象相互之间或与其他对象进行交互。
当然我至少需要有一个对象来调用这个类的函数,所以我想到了让成员static这样可以避免不必要的对象创建。

这种设计的优缺点是什么?什么是更好的设计?

最佳答案

要访问静态成员,你甚至不需要对象,只需调用

AA::a1()

这种模式称为“Monostate”,另一种模式是 Singleton,您可以在其中实际创建一个对象,但要确保它只完成一次,有大量关于如何做到这一点的教程,只需谷歌一下即可。

关于c++ - 当不需要创建多个对象时,是否应该将类的成员变为静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13740039/

相关文章:

java - 是在编译时还是运行时检查访问权限?

java - 使用扩展类代替基类

c++ - 使运算符重载上下文特定

c++ - 如果它有主体,在抽象构造函数/析构函数中调用纯虚函数是否安全?

c++ - 为什么我不能用 C++ 编译 HelloWorld?

c++ - QByteArray indexOf 已弃用?

Swift:有没有办法确保只有特定的类才能创建其他类的对象

python - 我收到此错误 --> TypeError : string indices must be integers

java - 为什么我不能将元素添加到另一个类的列表中?

c++ - 当我使用父类指针将它们添加到 vector 时,我无法使用子类特定函数