c++继承

原创
2016/07/31 00:41
阅读数 4

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

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

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 必须是指针或引用,且类中必须要有虚函数

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部