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.引用成员变量必须在它被构造时初始化,这个过程在成员初始化列表里完成。
posted @ 2025-05-08 10:04  正明小佐  阅读(9)  评论(0)    收藏  举报