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))
{}
};
我在初始化 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))
{}
};