STL不能作为类成员吗?( BCB5 )
刚刚接触STL,遇到了不少问题,希望大侠指教。所在的环境是BCB5。我发现我不能在把vector <myclass,allocator<myclass> v在一个类中声明,令其作为一个类的成员。却能把其在这个类的一个函数体里声明它,令其作为一个局部变量。把其声名为一个全局变量,也出错。百思不得其解。代码太概如下:
//hello.h
#inlcude "myclass.h"
class Chello{
public:
//编译时出错
vector <myclass,allocator<myclass> v1;
void test();
}
void class::test(){
//没有出错
vector <myclass,allocator<myclass> v2;
}
//编译出错
extern vector <myclass,allocator<myclass> v3;
在hello.cpp里
//没有出错
vector <myclass,allocator<myclass> v3;
却正确,由于在hello.h中不能声明为extern所以,这一个v3达不到让别的类共享的目的。
由上可见,vector只有声明为局部变量时才能正常使用,很明显,我的意图是让我vector能被其它的类共享,声明为类成员与全局都失败,那还什么办法呢?是我的程序的语法出了错还是bcb支持上有问题?以前在vc上用template也不见得这么多的问题。