Скажем, у меня есть такой код:
class Foo
{
public:
Foo(int v) : value(v) {}
Foo() : Foo(42) {}
private:
int value = 666;
};
Установлен ли ctor по умолчанию 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
.
Спасибо.