gpt4 book ai didi

C++ 静态属性

转载 作者:可可西里 更新时间:2023-11-01 18:42:00 24 4
gpt4 key购买 nike

我在访问类中的静态属性时遇到问题。我收到以下错误:

shape.obj : error LNK2001: unresolved external symbol "public: static class TCollection<class Shape *> Shape::shapes"

类的定义是:

class Shape {

public:
static Collection<Shape*> shapes;

static void get_all_instances(Collection<Shape*> &list);
};

静态方法的实现是:

void Shape::get_all_instances(Collection<Shape*> &list) {
list = Shape::shapes;
}

好像shapes属性未被初始化。

最佳答案

你是对的,因为静态变量只在类中声明而没有定义。

必须也定义它们,只需将以下行添加到您的实现所在的文件中。

Collection<Shape*> Shape::shapes;

它应该可以解决问题。

关于C++ 静态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com