gpt4 book ai didi

c++ - 尝试返回具有嵌套结构的迭代器会出现 "does not name type"错误

转载 作者:行者123 更新时间:2023-11-30 02:09:50 26 4
gpt4 key购买 nike

我在一个类中定义一个私有(private)结构的 vector ,然后尝试获取该类的一个私有(private)函数以返回一个迭代器。简化代码:

#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在最后一行。

最佳答案

最后一行应该是

A::BIter A::FindSomething() { ... }

原因是 BIterA 类的内部,当编译器到达 BIter A::FindSomething 的定义时, 还没有为返回类型建立上下文(A 类),因此您必须完全限定它。

关于c++ - 尝试返回具有嵌套结构的迭代器会出现 "does not name type"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5069517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com