Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 没有类型的声明_C++_Xcode_Vector - Fatal编程技术网

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;