C++ class const 成员在构造函数体内初始化

C++ class const member intialization within constructor body

我在初始化 const class 成员时遇到问题。 我在const成员初始化之前必须做很多计算,所以我不能使用这个语法

Class::Class(int value) : value(value) {}

我希望在构造函数体中初始化成员,例如:

Class::Class(int value) {
  if (Function1(value)) {
    this->value = value;
    Function2(&this->value);
  }
  else
    this->value = value * 2;
}

可能吗? 希望得到您的帮助!

将所有的计算收集到一个静态计算函数中。

struct Class {
    static int calcValue(int value) {
        if (Function1(value) {
            Function2(&value);
            return value;
        }
        return value * 2;
    }

    Class(int val)
        : value(calcValue(val))
    {}
};