预先完成一些工作的 C++ 委托构造函数

C++ delegate constructor with some work done beforehand

我正在尝试按照

的方式做一些事情
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()) {}
};