c++中的公有继承

来源:互联网 发布:java泛型上下边界 编辑:程序博客网 时间:2024/04/26 01:47

#include<iostream>using namespace std;class A{public:    int a;    };//b要想能够访问a,必须写成公有继承A class B: public A{public:    int c;          int b;  };int main(){    B *b=new B();    b->c=3;    b->a=1;            A *a=b;    if(a->a==1){        B* c=(B*)a;        cout<<c->c<<endl;                   }    return 0;} 


如果不是公有继承A的话就会出现下面的这种错误:

分析:如果类的继承不写关键字,则默认为私有继承。私有继承的话,基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问,这样就清晰为什么b不能访问a了。



原创粉丝点击