我只是想知道我们是否可以在C ++中使用静态类。我的意思是我们可以在类似static class foo
的C ++中将类声明为静态吗?我知道我们可以在C ++中使用静态成员变量和静态成员函数,但我不确定静态类。
编辑:
我打算问一个类是静态的意思。
答案 0 :(得分:8)
编辑:好的,我会不再马虎。
static
是存储类说明符。
这就是半迂腐的定义。问题是,您希望将哪种语义附加到“静态类”的概念上?嵌套类自动具有类似静态的属性 - 它们是类的属性,而不是单个对象。如果您希望在外部作用域中声明的类具有类似静态的属性(即,与不同翻译单元中的单定义规则不冲突),则可以使用anonymous namespace。
答案 1 :(得分:4)
static关键字表示它引用的对象在整个程序的生命周期中存在。类定义只是构造对象的大纲。
考虑到这一点,也许您可能希望执行诸如创建命名空间或创建singleton object这样的类,这个类只设计为具有单个实例。
答案 2 :(得分:1)
不,但如果仅使用静态方法(和数据)创建类,则基本上可以实现几乎相同。请注意,C ++中没有静态构造函数概念。
答案 3 :(得分:1)
如果用“静态类”指的是C#中的那些,那么C ++中的等价物只是制作一个构造函数并使其成为私有,并避免使用非静态成员。
如果“静态类”指的是Java中的那些,那么所有 C ++类都是“静态的”,所以你不能添加“静态”,因为它会是多余的。 / p>