静态矢量成员变量
所以我有一个静态的载体成员的类:静态矢量成员变量
class Foo {
// some private members
public:
static vector<Bar> MyVector;
};
现在我真正使用它之前初始化MyVector:
std::vector<Bar> Foo::MyVector;
然后我想这样定义一个变量在主()中,但它似乎并不工作:
Foo::MyVector::size_type t;
此替代方法确实有效,但看起来并不美观(对我的眼睛s):
vector<Bar>::size_type t;
什么是我在这里失踪的基本概念?
编辑
主要的一点是,我要经常回来看看的MyVector宣布为矢量<酒吧>着手宣布为它SIZE_TYPE过吗?
这不是解决方法。 MyVector
是对象。 vector<Bar>
是类型。 size_type
是vector
类中的typedef,不是成员变量。
所以我需要回去看看在类中的Foo:MyVector的定义,然后继续定义一个变量来存储它的size_type? – Sourena
@Sourena,不,通过编写'vector
在C++ 11中,您可以使用decltype(Foo :: MyVector):: size_type –
size_type
是在std::vector
中声明的类型。它是绑定到班级的,而不是个别的实例。此外,::运算符仅用于名称空间和类。你不能在变量中使用它。
感谢您的回答。我只是在想,是否可以从实例中“提取”typedef,而不回头去看它的定义。 – Sourena
你有没有试过这个*以前更简单*? 'std :: string s; s :: size_type n; // ???' –
为什么它看起来不漂亮? –
@OnurA。因为我需要滚动到MyVector – Sourena