如果类中的所有方法都是静态的,如何调用构造函数?

Aqu*_*irl 3 c++ static constructor

/sf/answers/618775321/

使用静态初始化程序:

public class MyClass
{
    static {
    //init
    }
}
Run Code Online (Sandbox Code Playgroud)

在C++中可以做类似的事情吗?
实际上,我需要初始化一些变量,但我不想创建一个对象.

Luc*_*ore 6

如果变量是static成员,则不仅可以初始化它们,还必须初始化它们.

没有直接等效的Java初始化列表,但可以通过调用函数来初始化静态成员来完成类似的操作:

class X
{
    static bool x;
}

bool foo()
{
    //initialization code here
}

bool X::x = foo();
Run Code Online (Sandbox Code Playgroud)

这适用于具有强烈逻辑的情况.如果你想要的只是初始化static成员,那就这样做吧X::x.

实际上,我需要初始化一些变量,但我不想创建一个对象.

如果变量在类之外,则直接初始化它们(不需要为此调用代码).

如果变量是static类的成员,请使用上述方法之一.

如果变量是非static成员,则它们在没有对象的情况下就不存在.

  • @AnishaKaul成员存在于每个类的实例中,因此您只想要创建的第一个实例进行初始化?这毫无意义. (2认同)