C++ 没有类型的声明
我很困惑 我这样做:C++ 没有类型的声明,c++,xcode,vector,C++,Xcode,Vector,我很困惑 我这样做: #include <vector> // List iteration typedef vector<registeredObject>::iterator iterator; typedef vector<registeredObject>::const_iterator const_iterator; vector<registeredObject>::iterator begin(void); vector<re
#include <vector>
// List iteration
typedef vector<registeredObject>::iterator iterator;
typedef vector<registeredObject>::const_iterator const_iterator;
vector<registeredObject>::iterator begin(void);
vector<registeredObject>::const_iterator begin(void) const;
vector<registeredObject>::iterator end(void);
vector<registeredObject>::const_iterator end(void) const;
#包括
//列表迭代
typedef向量::迭代器迭代器;
typedef向量::常量迭代器常量迭代器;
向量::迭代器开始(void);
向量::常量迭代器begin(void)const;
向量::迭代器结束(void);
向量::常量迭代器结束(void)常量;
我会遇到如下错误:
.: error: ISO C++ forbids declaration of 'vector' with no type
.: error: expected ';' before '<' token
错误:ISO C++禁止声明“vector”,没有类型
:错误:应为“;”在“位于命名空间std
之前:
typedef std::vector<registeredObject>::iterator iterator;
不过,别忘了其他事情。您仍然需要std::
,并实际使用定义的类型。(这必须在两个类中修复。)
注意,使用T
作为模板类型更为常见。对你的typedef
慷慨大方也是很常见的:
typedef T value_type;
typedef std::vector<value_type> container;
typedef typename container::iterator iterator;
typedef typename container::const_iterator const_iterator;
typedef T value_type;
向量容器;
TypeDefTypeName容器::迭代器迭代器;
typedef typename容器::常量迭代器常量迭代器;
在课堂上使用这些。(即,使用
容器mRegistryList;
代替)是否声明registeredObject?您是否包含RegisteredObject.h?如果我不得不猜测,我会说RegisteredObject类型是在某个文件中定义的,但不包含在这个头文件中
一个.CPP文件可能恰好在MyIteratorDeclarations.h之前包含RegisteredObject.h,这会起作用。但是另一个文件可能只是包含MyIteratorDeclarations.h,这将产生一个错误
目前没有提供足够的代码来确保。也许您可以更改示例,以显示第一个错误之前的所有头文件内容。@Gman-不确定我是否理解为在使用vector之前放置std::似乎也不起作用。我把链接贴到了上面的班级。我想是模板让我困惑。@Andrew:我在上面的链接中以txt文件的形式发布了这个类。哪些特定的行会出现错误。
typedef typename std::vector<registeredObject> container;
typedef typename container::iterator iterator;
typedef typename container::const_iterator const_iterator;
typedef T value_type;
typedef std::vector<value_type> container;
typedef typename container::iterator iterator;
typedef typename container::const_iterator const_iterator;