1
說我有一些像這樣的代碼:構造函數委託如何與非靜態數據成員初始化交互?
class Foo
{
public:
Foo(int v) : value(v) {}
Foo() : Foo(42) {}
private:
int value = 666;
};
是否默認的構造函數設置value
至42或666?我想我會希望42,因爲這是一個明確的電話,但我也可以想象其他的方式。
繼承與如何?
class Base
{
public:
Base() { }
virtual ~Base() { }
virtual int f() = 0;
};
class Bar : public Base
{
public:
Bar(int _i) : Base(), i(_i) { }
Bar() : Bar(-1) { }
virtual ~Bar() { }
virtual int f() { }
private:
int i = 777;
};
再次,我希望爲i == -1
。
謝謝。