【发布时间】:2021-09-04 12:54:10
【问题描述】:
我在初始化 const 类成员时遇到问题。 在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;
}
有可能吗? 希望得到您的帮助!
【问题讨论】:
-
您可以编写一个带有
static preprocess(int value)之类签名的辅助函数,然后成员初始化语法将类似于Class::Class(int value) : value(preprocess(value)) { }。虽然我对Function2的东西持怀疑态度,但它似乎不涉及初始化类,并且可能会使设计这样的功能更加困难。
标签: c++ class constructor constants member