1
내가이 같은 일부 코드가 말 :생성자 위임은 비 정적 데이터 멤버 초기화와 어떻게 상호 작용합니까?
class Foo
{
public:
Foo(int v) : value(v) {}
Foo() : Foo(42) {}
private:
int value = 666;
};
기본 ctor에 42 또는 666에 value
를 설정합니까? 나는 그것이 명백한 요구이기 때문에 나는 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
을 다시 원합니다.
감사합니다.