c++类中的引用成员变量的初始化问题
In InferenceRunner.h,声明了一个构造函数:
class InferenceRunner{
public:
const MLU270Config& config_;
std::atomic<bool>& running_flag_;
public:
InferenceRunner(const MLU270Config& config);
...
}
In InferenceRunner.cc, 构造函数的实现如下:
InferenceRunner::InferenceRunner(const MLU270Config& config):
config_(config){
}
然后报错 , the error shows up: "InferenceRunner::InferenceRunner(const MLU270Config &config)" provides no initializer for:C/C++(366) InferenceRunner.cc(6, 20): reference member "InferenceRunner::running_flag_"
deepseek给了一点建议:
- References must be initialized when an object is constructed, which is done through the member initializer list.引用成员变量必须在它被构造时初始化,这个过程在成员初始化列表里完成。