• C++重载运算符练习--对people类重载“= =”运算符和“=”运算符


    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;
    }
    1. 测试截图
      这里写图片描述
  • 相关阅读:
    【节流】在vue的搜寻功能中使用节流
    【本地存储】将数据存储到本地 (sessionStorage、vuex)
    【react】 react---项目的-----------简单路由配置
    观察者模式
    vue-awesome-swiper 的安装和使用
    BetterScroll、移动端、滚动事件,如何使用
    永乐接口
    Linux命令
    对称加密和非对称加密
    小程序
  • 原文地址:https://www.cnblogs.com/FlyerBird/p/8995957.html
Copyright © 2020-2023  润新知