c++在模板类中使用list问题

2024-11-27 08:52:12
推荐回答(3个)
回答1:

可以调用但需要注意几个问题。
1、静态对象必须在类外初始化。
2、因有在类外初始化的需求,静态对象必须是公有的。
下面看个例子:
linklist list2;
class A
{
public:
static linklist list;
void mod()
{
list.add(10);
}
void print()
{
list.print();
}

};
linklist A::list=list2;
int main()
{
A a;
a.mod();
a.print();
system("pause");
}
以上例子给你描述的大致差不多,你对照看看你的问题在那。

回答2:

给你一个简化的,能正确编译、链接的修改,楼主对照着看看是不是漏了什么,没有注释:
template
class GCInfo{};

template
struct GCPtr{
static list > gclist;
void Test()
{
gclist.push_back(GCInfo());
}
};
list > GCPtr::gclist;
void TestTheModel()
{
GCPtr t;
t.Test();
}

回答3:

static list > gclist;
表明gclist是静态成员,所以只有静态成员函数才可以操作gclist
不知道是不是这个原因