我制作了一个程序,该程序在其自己的专用 cpp/h 文件组合中包含一个仅包含静态成员的类。可能是当我尝试在代码中使用这些静态成员时,我在链接器阶段收到“未解析的外部”错误。我记得将 h 文件包含在出现错误的 cpp 文件中。我不明白。这是错误的设计方法吗?
基本上,我希望一些属于第三方 API 一部分的全局对象可供我的整个程序使用,因此我将所有内容组织到一个类中,并将所有内容都设置为静态成员。我还创建了一个空的私有(private)构造函数以防止该类被实例化。这是一个明智的做法吗?静态成员都是指针,我尝试从分配新对象并将每个对象附加到静态指针开始。这种方法有问题吗?
谢谢!
最佳答案
您是否记得在某处实际定义变量,而不是仅仅在 header 中声明它?
Foo.hpp:
#ifndef FOO_HPP
#define FOO_HPP
class Foo {
public:
static int bar;
};
#endif
Foo.cpp:
#include "Foo.hpp"
int Foo::bar; // <-- This being the critical line.
关于C++ 使用类的静态成员时,什么可能会导致链接过程中出现 Unresolved external 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6602543/