Конструктор делегата C ++ с некоторой работой, сделанной заранее

Я пытаюсь сделать что-то вроде

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 доступно в списке инициализатора?

1

Решение

Некоторые альтернативы:

Аргумент по умолчанию:

struct A {
explicit A(int i = load_something());
};

Отложенный конструктор:

struct A {
explicit A(int i);
A() : A(load_something()) {}
};
4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector