C++语言重载运算符练习--对people类重载“= =”运算符和“=”运算符
小标 2018-07-25 来源 : 阅读 2005 评论 0

摘要:本文主要向大家介绍了C++语言重载运算符练习--对people类重载“= =”运算符和“=”运算符,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

本文主要向大家介绍了C++语言重载运算符练习--对people类重载“= =”运算符和“=”运算符,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

1. 题目描述 
对people类重载“= =”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等;“=”运算符实现people类对象的赋值操作。

2. 代码如下

#include<iostream>#include<string>using namespace std;class Data{public:

    Data(){}

    Data(int yy,int mm,int dd){

    year=yy;

    month=mm;

    day=dd;

    }

    Data(Data &ap){

        year=ap.year;

        month=ap.month;

        day=ap.day;

    }

    ~Data(){

    }

    int get_year(){

        return year;

    }

    int get_month(){

        return month;

    }

    int get_day(){

        return day;

    }

    void set_year(int y){

        year=y;

    }

    void set_month(int m){

        month=m;

    }

    void set_day(int d){

        day=d;

    }private:

    int year;

    int month;

    int day;

};class People{public:

    People(int num,string se,Data birth,string iid):birthday(birth){

        number=num;

        sex=se;

        id=iid;

    }

    People(People &tp){

        number=tp.get_number();

        sex=tp.get_sex();

        id=tp.get_id();

        birthday=tp.get_birthday();

    }

    People(){}

    People get_People(){

        int num,yy,mm,dd;

        string ID,se;

        cout<<"Please enter the number of the People:"<<endl;

        cin>>num;

        cout<<"Please enter the sex:(male or female)"<<endl;

        cin>>se;

        cout<<"Please enter the birthday:"

            <<"(Warning the format is 1998 8 3.)"<<endl;

        cin>>yy>>mm>>dd;

        cout<<"Please enter the id:"<<endl;

        cin>>ID;

        Data birth(yy,mm,dd);

        id=ID;

        number=num;

        sex=se;

        birthday=birth;

        return *this;

    }

    ~People(){}

    void set_number(int num){

        number=num;

    }

    void set_sex(string se){

        sex=se;

    }

    void set_birhtday(Data birth){

        birthday=birth;

    }

    void set_id(string iidd){

        id=iidd;

    }

    inline int get_number(){

        return number;

    }

    inline string get_sex(){

        return sex;

    }

    Data get_birthday()

    {

        return birthday;

    }

    inline string get_id(){

        return id;

    }

    void details(){

        cout<<"Number:"<<number<<endl;

        cout<<"Sex:"<<sex<<endl;

        cout<<"Birthday:"<<birthday.get_year()<<"/"<<birthday.get_month()<<"/"<<birthday.get_day()<<endl;

        cout<<"ID:"<<id<<endl;

    }

    People& operator=(const People &p1){

        if(this==&p1){

            return *this;

        }

        number=p1.number;

        sex=p1.sex;

        birthday=p1.birthday;

        id=p1.id;

    }private:

    int number;

    string sex;

    Data birthday;

    string id;

    friend bool operator== (const People &p1,const People &p2){

        if(p1.id==p2.id)

            return true;

        else

            return false;

    }

};int main()

{

    People asp,tcp,tmp;

    asp.get_People();

    asp.details();

    tcp.get_People();

    tcp.details();

    if(asp==tcp)

        cout<<"The id of two people is common!!!"<<endl;

    else

        cout<<"The id of two people is different!!!"<<endl;

    tmp=asp;

    tmp.details();

    return 0;

}

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程