C ++链表-构造函数和运算符重载

布列塔尼

我已经编写了一个运行在链接列表之外的航空公司预订系统list<Passenger> flight list

我认为我编写的功能应该可以工作,但是由于无法正确完成我的乘客舱位,因此我无法对其进行测试。

(database.h)

class Passenger
{
public:
    Passenger(string, string, string);
    ~Passenger();
    Passenger operator==(const Passenger&) const;
    Passenger operator<(const Passenger&) const;
    void read_from_file(list<Passenger>&, string);
    void insert(list<Passenger>&, string, string, string);
    void remove(list<Passenger>&, string, string, string);
    bool check_reservation(list<Passenger>&, string, string);
    void display_list(list<Passenger>&);
    void save_to_file(list<Passenger>&, string, string, string);

private:
    string fname;
    string lname;
    string destination;
};

(database.cc)

Passenger::Passenger(string first, string last, string dest)
{
     fname = first;
     lname = last;
     destination = dest;
}

Passenger::~Passenger()
{

}

Passenger Passenger::operator==(const Passenger&)
{

}

Passenger Passenger::operator<(const Passenger&)
{

}

应该重载运算符,以便比较名字和姓氏,以便按姓氏的字典顺序对列表进行排序。

朝着正确方向的任何观点都将很有帮助。

谢谢!

克里斯多夫(Christophe)

问题是您的操作员超负荷的原因:

Passenger operator==(const Passenger&) const;
Passenger operator<(const Passenger&) const;

比较应该返回abool而不是a Passenger因此,尝试:

bool operator==(const Passenger&) const;
bool operator<(const Passenger&) const;

例如,具有以下实现:

// and don't forget the trailng const to match the signature !
bool Passenger::operator==(const Passenger& p) const
{
    return fname==p.fname && lname==p.lname; 
}

bool Passenger::operator<(const Passenger& p) const
{
    return fname<p.fname || (fname==p.fname && lname<p.lname); 
}

这里是在线演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++运算符+重载单链表

来自分类Dev

C ++中链表的重载运算符+ =

来自分类Dev

链表的等号运算符C ++

来自分类Dev

C ++复制构造函数和=运算符中的重载情况

来自分类Dev

复制构造函数和Assignemnt运算符重载在C ++中不起作用

来自分类Dev

在链表程序中使用模板时,在C ++中重载<<运算符

来自分类Dev

请帮助我了解链表C ++中的运算符重载=

来自分类Dev

运算符重载和非成员函数C ++

来自分类Dev

链表时= =运算符重载的意义

来自分类Dev

链表运算符重载问题

来自分类Dev

链表副本构造函数C ++

来自分类Dev

对链表复制构造函数和赋值运算符使用 copy() 方法

来自分类Dev

C ++链表迭代成员访问运算符

来自分类Dev

C ++:运算符new和default构造函数

来自分类Dev

C ++构造函数和运算符问题

来自分类Dev

函数的C ++运算符重载

来自分类Dev

C ++赋值运算符和重载

来自分类Dev

设置(C ++)和运算符<重载

来自分类Dev

C ++中重载的==和!=运算符

来自分类Dev

C++:使用关键字运算符重载成员的构造函数

来自分类Dev

深入复制链表的C ++构造函数

来自分类Dev

链表C ++中的复制构造函数

来自分类Dev

C和getifaddrs()中的链表

来自分类Dev

C中的链表的链表

来自分类Dev

C ++运算符重载++

来自分类Dev

C ++-重载[]运算符

来自分类Dev

C ++运算符重载

来自分类Dev

C ++“ *”运算符重载

来自分类Dev

C ++运算符>>重载