Can C++';类变量是否可以像Java中那样在没有构造函数的情况下初始化?

Can C++';类变量是否可以像Java中那样在没有构造函数的情况下初始化?,java,c++,constructor,Java,C++,Constructor,在Java中,我可以创建一个类并在没有构造函数的情况下初始化变量: public class Foo { private int x = 1; public getx() { return x; } } 但是在C++中,要完成同样的事情,我唯一知道如何做到这一点的方法是: class Foo { private: int x; public: Foo() { x = 1; } getx() { re

在Java中,我可以创建一个类并在没有构造函数的情况下初始化变量:

public class Foo {
private int x = 1;
public getx() {
    return x;
    }
}
但是在C++中,要完成同样的事情,我唯一知道如何做到这一点的方法是:

class Foo
{
private:
    int x;
public:
    Foo()
    {
        x = 1;
    }
    getx()
    {
        return x;
    }
};

由于C++11,您可以这样做。换言之,这种方法非常有效:

class Foo
{
    int x = 1;
public:
    int getX() { return x;}
};

你试过了吗?GCC和MSVC的较新版本将接受
intx=1和Clang显式调用打开C++11支持。