为什么不能在c ++中将构造函数声明为static?

San*_*alp 8 c++ oop static constructor

我最近读完了第一卷.Bruce Eckel在C++中的思考,现在转向将这些知识用于实际应用.

我最近使用静态成员函数并尝试使构造函数静态,编译器对此不满意.我检查了书中的原因但找不到任何原因.

有谁能解释为什么?

PS:在看到一些回复之后,我想提一下,由于我知道C#(和Java)允许构造函数被声明为静态,因此产生了混淆.

NPE*_*NPE 13

构造函数的目的是初始化类实例的内容.

静态方法没有与之关联的实例.

因此,没有静态构造函数.

  • @ log0正如林肯所说,即使你把它的尾巴称为一条腿,它也只有四条腿.无论MS调用它们,C#的类初始值设定项都不是*构造函数."静态构造函数"确实是无意义的.C++将来可能会使用类似构造函数的语法,或类似Java的语法,或其他一些语法来提供类初始值设定项,但无论使用何种语法,它仍然不是构造函数. (3认同)
  • 好吧,C++ 可以像 C# 或带有静态初始化块的 Java 一样定义静态构造函数。静态构造函数本身并不是特别无意义的。 (2认同)