Я пытаюсь сделать что-то вроде
class A {
A();
A(int num);
}
A::A()
{
int i = /* Something that loads something */
A(i);
}
A::A(int num)
{
/* something involving num */
}
Мне известны делегированные конструкторы в C ++ 11, и меня интересует, можно ли что-то сделать до вызова делегированного конструктора.
Кроме того, не связано, но есть this
доступно в списке инициализатора?
Некоторые альтернативы:
Аргумент по умолчанию:
struct A {
explicit A(int i = load_something());
};
Отложенный конструктор:
struct A {
explicit A(int i);
A() : A(load_something()) {}
};
Других решений пока нет …