????????今天给大家介绍一下C++继承中的一些概念,继承分为三种,分别为公有继承,保护继承,私有继承。
????????首先解释一下不同的权限关键字的作用:
? ? ? ? 接下来介绍一下不同继承带来的不同作用:
? ? ? ? 接下来有四个类,A、B、C、D,代码如下:
? ? ? ? A类为基类
class A {
public:
int a;//公共权限
protected:
int b;//保护权限
private:
int c;//私有权限
};
????????B类:因为是共有继承,所以被B继承之后,B中的a、b、c的权限和A中的一样,为public a,protected b,private c;再有类继承B类,依然可以访问a和b,c依然不可访问。如果不是派生类,如果是b的对象实体,则b无法访问protected和private修饰的b和c
class B :public A {//公有继承
void test1() {
cout << a << endl;
}
void test2() {
cout << b << endl;
}
void test3() {
cout << c << endl;
}
};
?导致结果1:(没有继承,对象引用)
导致结果2:(派生类继承基类)?
? ? ? ? C类:因为是保护继承,所以被C继承之后,C中的a、b、c的权限公有的和保护权限全部变为保护权限,私有权限不变。为protected a,protected b,private c;导致C类的对象无法访问C中的abc。
class C :protected A {//保护继承
void test1() {
cout << a << endl;
}
void test2() {
cout << b << endl;
}
void test3() {
cout << c << endl;
}
};
导致结果:
?
? ? ? ? D类:因为是私有继承,所以被D继承之后,D中的a、b、c的权限全部变为私有权限。为private a,private b,private c;? 导致D类的对象全都无法访问abc。
class D :private A {//私有继承
void test1() {
cout << a << endl;
}
void test2() {
cout << b << endl;
}
void test3() {
cout << c << endl;
}};
?导致结果:
?
注:本文章仅为学习路线中感悟,有错误之处还请指出!