`
hcmfys
  • 浏览: 347240 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

c++ 继承1

阅读更多
#include<iostream>

using namespace std;
class People
{
private :
    int age;
    char sex;
public:
    People(int age,char sex)
    {
        this->age=age;
        this->sex=sex;
    };
    People()
    {
        age=0;
        sex='m';
    }
    virtual void Work()
    {
        cout<<"people work"<<endl;
    }
    int getAge()
    {
        return age;
    }
    friend std::ostream &  operator<<(std::ostream &os,const People &people)
    {
        os<<" age "<<people.age<<" sex is "<<people.sex;
        return os;
    }
    People operator+=(const People &pe)
    {
        this->age+=pe.age;
        return *this;
    }
    People operator+=(int age)
    {
        this->age+=age;
        return *this;
    }
    People operator-=(int age)
    {
        this->age-=age;
        return *this;
    }
    People operator-(int age)
    {
        this->age-=age;
        return *this;
    }

    People operator=(const People &pe)
    {
        if (*this==pe) return *this;
        this->age=pe.age;
        this->sex=pe.sex;
        return *this;
    }
    int  operator==(const People &pe)
    {
        if (this->age==pe.age && this->sex==pe.sex)
            return 1;
        else
            return 0;
    }
};

class ColleageStudent:public People
{
public:
    ColleageStudent(){}
    ColleageStudent(int age,char sex):People(age,sex){}
    virtual void Work()
    {
        cout<<"collage student work"<<endl;
    }
};

int main()
{
    ColleageStudent c(12,'s');
    c.Work();
    People *t=new ColleageStudent(20,'s');
    t->Work();
    cout<< c.getAge();
    *t+=3;
    People t2;
    t2=*t;
    cout<<t2<<endl;
    delete t;
    return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics