有关模板类中嵌套一个类的问题

xym006 2012-10-31 01:31:00
template<class A,class B>
class Relation{
friend ostream& operator<< <> (ostream& os,Relation<A,B>& r);
private:
string nom;
string symbole;
const set<A>* ptr_a;
const set<B>* ptr_b;
set< pair<A,B> > ensemble;
public:
Relation(const string& n,const string& s,const set<A>& source,const set<B>& destination);
const string& get_nom()const{return nom;}
const string& get_symbole()const{return symbole;}
const set<A>* get_source()const{return ptr_a;}
const set<B>* get_destination()const{return ptr_b;}
void ajouter(const A& a,const B& b);
bool est_en_relation(const A& a,const B& b);
class iterateur{
private:
set< pair<A,B> >::iterator it;
public:
iterateur(set< pair<A,B> >::iterator& i):it(i){}
void operator++(){it++;}
void operator++(int){it++;}
void operator--(){it--;}
void operator--(int){it--;}
pair<A,B>& operator*(){return *it;}
bool operator!=(iterateur& i)const{return it!=i.it;}
};
iterateur begin()const{return iterateur(ensemble.begin());}
iterateur end()const{return iterateur(ensemble.end());}
};

里面嵌套了一个模拟iterator的iterateur类,由于是第一次写模板类,有许多东西不是很懂......
以下是错误代码:

Error 5 error C2061: 语法错误: 标识符“iterator” g:\code\relation\relation\relation.h 30 1 Relation
Error 2 error C2146: 语法错误: 缺少“;”(在标识符“it”的前面) g:\code\relation\relation\relation.h 28 1 Relation
Error 3 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int g:\code\relation\relation\relation.h 28 1 Relation
Warning 1 warning C4346: “std::set<std::pair<_Ty1,_Ty2>>::iterator”: 依赖名称不是类型 g:\code\relation\relation\relation.h 28 1 Relation
Warning 4 warning C4346: “std::set<std::pair<_Ty1,_Ty2>>::iterator”: 依赖名称不是类型 g:\code\relation\relation\relation.h 30 1 Relation

麻烦各位指正,谢谢!
...全文
137 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xym006 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

operator<< <>
应该是operator<< ()
[/Quote]

感谢回答,可是问题还是没有解决......
zjs100901 2012-10-31
  • 打赏
  • 举报
回复
operator<< <>
应该是operator<< ()

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧