1
在Java中,我可以創建一個類,初始化的變量,而不構造函數:C++的類變量可以在沒有構造函數的情況下初始化嗎?
public class Foo {
private int x = 1;
public getx() {
return x;
}
}
但在C++,來完成同樣的事情,我知道如何做到這一點的唯一方法:
class Foo
{
private:
int x;
public:
Foo()
{
x = 1;
}
getx()
{
return x;
}
};
你試過嗎?默認情況下,GCC和MSVC的新版本會接受'int x = 1;',並且Clang明確調用開啓C++ 11支持。 – chris
實際上,[CppCoreGuidelines建議使用類內初始化程序](https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c48-prefer-in-class-initializers-to-member-initializers- in-constructors-for-constant-initializers)作爲默認值。 – Justin