用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

多态

2016-12-27 作者: 冷血举报

[c++]代码库

#include <iostream>
using namespace std;
class father
{
public:
    father ( int height );  //父类构造函数带有一个参数height
    virtual ~father() {cout<<"析构父亲...\n";}
    virtual void smart() const {cout<<"父亲很聪明"<<endl;}
    virtual int getheight() const {return itsheight;} //通过成员函数访问私有变量并设置私有变量的值,该函数被说明为虚函数
private:
    int itsheight; //私有成员itsheight
};
father::father ( int height ) :itsheight ( height ) //通过构造函数来设置私有变量的值
{
    cout<<"创建父亲\n";
}
class mother
{
public:
    mother ( bool sex );    //母类的构造函数有一个布尔型参数sex
    virtual ~mother() {cout<<"析构母亲\n";}
    virtual void beautiful() const {cout<<"母亲很漂亮\n";}
    virtual bool getsex() const {return itsex;} //通过布尔型成员函数访问私有变量并设置私有变量的值,该函数被说明为虚函数
private:
    bool itsex;     //私有布尔变量itsex
};
mother::mother ( bool sex ) :itsex ( sex )  //定义母类的布尔型构造函数sex并设置私有成员的值
{
    cout<<"创建母亲\n";
}
class son:public father,public mother //子类分别继承母类和父类,继承权限为公有
{
public:
    ~son() {cout<<"析构小儿子..."<<endl;}
    son ( int,bool,long );  //子类的构造函数带有三个参数,类型为int,bool和long。
    virtual long getnum() const     //通过long型成员函数getnum访问并返回私有变量num的值。
    {
        return num;
    }
private:
    long num;
};
son::son ( int height,bool sex,long number ) :father ( height ),mother ( sex ),
        num ( number )      //子类在构造函数的同时进行初始化,初始化的顺序由程序员指定,这里是首先初始化父类height参数,然后初始化母类的sex参数,最后初始化子类的number参数。
{                   //所有这些初始化工作完成后
    cout<<"创建小儿子\n"//方才执行son的构造函数
}
int main()
{
    son*ps=new son ( 5,true,3 );    //在堆中创建一个son类对象并初始化构造函数的三个参数,同时声明一个son类的指针使其指向这个新建的堆
    ps->beautiful();     //用该指针访问从母类继承来的虚函数
    ps->smart();     //用该指针访问从父类继承来的虚函数
    cout<<"\n小儿子有"<<ps->getheight(); //用该指针访问从父类继承来的虚函数
    cout<<"英尺高\n";
    if ( ps->getsex() )          //用该指针访问从母类继承来的布尔函数
        cout<<"性别:男";
    else
        cout<<"性别:女";
    cout<<"\n在家排行:第"<<ps->getnum() <<endl; //用该指针访问子类的getnum函数
    delete ps;                              //删除这个指向son类对象的指针
    system ( "pause" );
    return 0;
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...