可以调用但需要注意几个问题。
1、静态对象必须在类外初始化。
2、因有在类外初始化的需求,静态对象必须是公有的。
下面看个例子:
linklist
class A
{
public:
static linklist
void mod()
{
list.add(10);
}
void print()
{
list.print();
}
};
linklist
int main()
{
A a;
a.mod();
a.print();
system("pause");
}
以上例子给你描述的大致差不多,你对照看看你的问题在那。
给你一个简化的,能正确编译、链接的修改,楼主对照着看看是不是漏了什么,没有注释:
template
class GCInfo{};
template
struct GCPtr{
static list
void Test()
{
gclist.push_back(GCInfo
}
};
list
void TestTheModel()
{
GCPtr
t.Test();
}
static list
表明gclist是静态成员,所以只有静态成员函数才可以操作gclist
不知道是不是这个原因