假设我有一个类A
,它有一个名为的公共方法init()
。当我创建std::vector
类型的对象时A
,我可以轻松地为所有对象调用此方法:
std::vector<A> v;
/* filling vector with some objects */
v[1].init(); // Intellisense finds that v[1] object has method 'init()'
但是当我使用 typedef 时,我无法访问该方法:
typedef std::vector<A> a_vector;
a_vector v;
/* filling vector with some objects */
v[1]. // Intellisense says that v[1] object doesn't have any members available
为什么使用typedef
会导致这种行为?