我在一个类中定义一个私有结构的向量,然后尝试获取该类的私有函数以返回一个迭代器。简化代码:
#include <vector>
class A
{
private:
struct B {
...
};
std::vector<B> vecB;
typedef std::vector<B>::iterator BIter;
BIter FindSomething();
};
BIter A::FindSomething() { ... }
不幸的是,当我尝试编译时,我收到错误:'BIter' does not name a type
在最后一行。
答案 0 :(得分:4)
最后一行应该是
A::BIter A::FindSomething() { ... }
原因是BIter
是A
类的内部,当编译器到达BIter A::FindSomething
的定义时,上下文(A
类)具有没有为返回类型建立,所以你必须完全符合它。