c++继承

基类成员访问属性    继承方式    派生类成员访问属性

---------------------------------------

public成员                public        public

protected成员                            protected

private成员                                无法访问

-----------------------------------------

public                        protected        protected

protected                                            protected

private                                                无法访问

-----------------------------------------

public                        private                private

protected                                              private

private                                                   无法访问

-----------------------------------------

隐藏:

父子关系->成员函数、数据成员同名->隐藏父类成员

通过父类::成员可以访问隐藏的成员

覆盖:

父子关系->同名虚函数->覆盖父类的虚函数

 

抽象类:含有纯虚函数的类叫抽象类,抽象类不能实例化

接口类:仅含有纯虚函数的类叫接口类,没有数据成员,成员函数都是纯虚函数

 

RTTI 运行时类型识别

void dosomething(flyable *obj)

{

    obj->takeoff();

    cout<< typeid(*obj).name()<<endl;

    if(typeid(*obj)==typeid(Bind))

    {

        Bird *bird = dynamic_cast<Bird *>(obj);

        bird->foraging();

    }

    obj->land();

}

 

dynamic_cast 必须是指针或引用,且类中必须要有虚函数

 

 

转载于:https://my.oschina.net/hudangwei/blog/724341

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值