C++ C+中的静态成员和LNK错误+;

C++ C+中的静态成员和LNK错误+;,c++,static,C++,Static,我有一个类,它有一个静态成员,我想在类构造函数中使用它,但是代码没有编译,我留下了以下错误: 致命错误LNK1120:1个未解析的外部 错误LNK2001:未解析的外部符号“受保护:静态类集合A::集合” 任何帮助都将不胜感激。 谢谢 a、 h: 您需要添加 Collection<A*> A::collection; Collection A::Collection; 到a.cpp文件。在.cpp文件中,您需要添加: Collection<A*> A::collect

我有一个类,它有一个静态成员,我想在类构造函数中使用它,但是代码没有编译,我留下了以下错误:

致命错误LNK1120:1个未解析的外部

错误LNK2001:未解析的外部符号“受保护:静态类集合A::集合”

任何帮助都将不胜感激。 谢谢

a、 h:

您需要添加

Collection<A*> A::collection;
Collection A::Collection;

到a.cpp文件。

在.cpp文件中,您需要添加:

Collection<A*> A::collection;
Collection A::Collection;

h只声明某处会有一个副本。您需要在.cpp中提供该副本。

或者,如果您不想将该行放入cpp文件中,可以使用静态方法返回对静态实例的引用。。。i、 e

class A
{
public:
  static Collection<A*>& collection()
  {
    static Collection<A*> singleInstance;
    return singleInstance;
  }
};
A类
{
公众:
静态收集&Collection()
{
静态采集单实例;
返回单实例;
}
};
Collection<A*> A::collection;
class A
{
public:
  static Collection<A*>& collection()
  {
    static Collection<A*> singleInstance;
    return singleInstance;
  }
};