c++ - 防止创建成员函数都是静态的类

标签 c++ static constructor namespaces

我的类ClassA中的所有成员变量和成员函数都是静态的。

如果用户试图(错误地)创建此类的对象,他会收到警告:“ClassA,从未引用过局部变量”,因为所有函数都是静态的,因此永远不会引用该对象。所以,我想阻止用户尝试创建此类的对象。

创建一个私有(private)默认(无变量)构造函数就足够了吗?或者我是否还必须创建私有(private)复制构造函数和私有(private)赋值运算符(以防止使用默认构造函数)?如果我也必须创建它们,也许最好只创建一些虚拟的纯虚函数,这样会阻止用户创建对象?

谢谢

最佳答案

与其使用包含所有静态方法的类,不如让这些方法在单独的命名空间中成为独立函数会更好。调用语法是一样的:

namespace::function() 而不是 classname::function()

而且您不需要与试图实例化您的类的人打交道。

关于c++ - 防止创建成员函数都是静态的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/353550/

相关文章:

c++ - 通过引用传递指针 C++

c# - 引用静态类中的实例化对象 (c#)

c++ - 与构造函数、类和单独的文件混淆

c# - 通过构造函数使用主键初始化 EF(6) 对象(最佳实践?)

c++ - 2个动态数组初始化之间的区别

java - 自动调用静态 block ,无需显式调用 Class.forName

C++如何从包含的类中调用父类方法?

java - Java中如何设置对象的实例变量?

c++ - 更新 qt Creator 中的列表

c++ - pugi::next_sibling 返回了一些奇怪的东西