所以我有一个带有静态向量成员的类:
class Foo {
// some private members
public:
static vector<Bar> MyVector;
};
现在我在实际使用之前初始化MyVector:
std::vector<Bar> Foo::MyVector;
然后我想在main()中定义一个这样的变量,但它似乎不起作用:
Foo::MyVector::size_type t;
这种解决方法确实有效,但看起来并不漂亮(我的眼睛):
vector<Bar>::size_type t;
我在这里失踪的基本概念是什么?
修改
重点是,我是否应该总是回来看 MyVector 的声明为 vector&lt;在继续为它声明size_type之前,请先&gt;
答案 0 :(得分:7)
这不是解决方法。 MyVector
是对象。 vector<Bar>
是类型。 size_type
是vector
类中的typedef,而不是成员变量。
答案 1 :(得分:0)
size_type
是std::vector
中声明的类型。它与类绑定,而不是单个实例。此外,::运算符仅用于名称空间和类。您不能将它与变量一起使用。