This question already has answers here:
What is an undefined reference/unresolved external symbol error and how do I fix it?

(34个答案)


去年关闭。




我不明白为什么以下代码无法编译:
// program.h
class Sensor;

class Program {
private:
    static Sensor* sensor;
public:
    void SetSensor(Sensor *s) { sensor = s; }
};

我收到此编译器错误:
cc3No0Or.ltrans0.ltrans.o *:在程序Program::SetSensor(Sensor *)中
program.h:##:对程序传感器
的 undefined reference

最佳答案

您只有静态成员的声明,还需要定义...

Sensor* Sensor::sensor;

在.cpp文件中,它将起作用。

关于c++ - 初始化静态字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55667137/

10-12 05:01