4

假设我有一个类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会导致这种行为?

4

1 回答 1

3

可能只是 VS2012 的缓存符号定义文件中的一个小故障。关闭您的解决方案,删除在您的解决方案目录中找到的 sdf 文件(名为 [SolutionName].sdf),然后重新打开您的解决方案。给符号缓存几分钟以重新构建(取决于项目的大小)并希望最好。每当出现问题时冲洗并重复(它会,特别是对于包含大量代码的解决方案)。

于 2013-02-14T12:23:52.570 回答