新微赢技术网

标题: [求助]怎么重载这个加号运算符 [打印本页]

作者: 专属天使    时间: 2009-11-3 00:53
标题: [求助]怎么重载这个加号运算符
以下是两个类的声明,我的问题在红色处,会的帮忙一下,^_^ ^_^
class List;
class Item
{
private:
Item(int d = 0)
{
data = d; next = 0;
}
Item * next;
int data;
public:
friend class List;
};
class List
{
private:
Item *end();
Item *list;
public:
List()
{ list = 0; }
List(int d)
{ list = new Item(d); }
List(Itme *li,Item *en)
{ list =li; end() = en; }
List operator +(const List &list);
};
inline List::operator +(const List &list)
{接下来该如何定义这个函数体
}
作者: o.筎茈菰箪き    时间: 2009-11-3 00:53
是为了让两个类的对象相加
作者: 々無極風嘯々    时间: 2009-11-3 00:53
Item *end()

{ list =li; end() = en; }
请问一下Item *end()不是定义一个名为返回Item指针的函数吗?
是不是写错了呀,应该是 Item * end

还有inline List::operator +(const List &list)首先应该改成 inline List List::operator +(const List &list)

能不能写一些注释呀,不太能看懂
作者: 大师傅    时间: 2009-11-3 00:53
以下是引用redfire250在2006-4-12 14:46:00的发言:
Item *end()

{ list =li; end() = en; }
请问一下Item *end()不是定义一个名为返回Item指针的函数吗?
答:是的,该函数定义如下:
Item * List::end()
{
Item * prv, * pt;
for(prv=pt=list;pt;prv=pt,pt=pt->next)
;
retrun prv;
}

还有inline List::operator +(const List &list)首先应该改成 inline List List::operator +(const List &list)

这个你是对的,谢谢你
作者: 独臂神军    时间: 2009-11-3 00:53
做了好几个小时,郁闷死了

真不想再做这题了
作者: 陪你疯→想你    时间: 2009-11-3 00:53
问题还没解决么?
作者: 駃旒_鎏蒗瀦    时间: 2009-11-3 00:53
我的主要问题是:私有成员两个都是指针就不知道怎么写+重载了?
斑竹能不能写一下?或是举个私有成员数据是两个指针的+operator,谢谢斑竹了。^_^ ^_^




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2