c++学习笔记之继承方式 | 您所在的位置:网站首页 › 类的继承方式有三种 › c++学习笔记之继承方式 |
继承方式 继承的语法:class 子类 : 继承方式 父类 继承方式一共有三种: 1)公共继承(public) class A : public B 父类(B)中的公共权限和保护权限的内容继承到子类(A)中后,其权限不变,原来是保护在子类中也是保护,原来是公共在子类中也是公共。父类中的私有权限内容,子类虽然继承了,但是无访问权限 2)保护继承(protected) class A : protected B 父类(B)中的公共权限和保护权限的内容继承到子类(A)中后,无论这些内容在父类中是公共还是保护权限,到子类中全部变为保护权限。父类中的私有权限内容,子类虽然继承了,但是无访问权限 3)私有继承(private) 父类(B)中的公共权限和保护权限的内容继承到子类(A)中后,无论这些内容在父类中是公共还是保护权限,到子类中全部变为私有权限。父类中的私有权限内容,子类虽然继承了,但是无访问权限 验证代码: #include using namespace std; class Bassic { public: int m_A; protected: int m_B; private: int m_C; }; class Son1 : public Bassic { public: void func() { m_A = 10; //不报错,父类中公共成员 到子类中还是公共成员 m_B = 10; //不报错,父类中保护成员 到子类中还是保护成员 //m_C = 10; //报错,不能访问父类中的私有成员 } }; //公共成员 类内类外都可以访问 void test01() { Son1 s1; s1.m_A = 100; //不报错,父类中公共成员 到子类中还是公共成员 //s1.m_B = 100; //报错,父类中保护成员 到子类中还是保护成员 //s1.m_C = 100; //报错,不能访问父类中的私有成员 } class Son2 : protected Bassic { public: void func() { m_A = 10; //不报错,父类中公共成员 到子类中是保护成员 m_B = 10; //不报错,父类中保护成员 到子类中还是保护成员 //m_C = 10; //报错,不能访问父类中的私有成员 } }; //保护成员 类内可以访问,类外不可以访问 void test02() { Son2 s1; //s1.m_A = 100; //报错,父类中公共成员 到子类中是保护成员 //s1.m_B = 100; //报错,父类中保护成员 到子类中还是保护成员 //s1.m_C = 100; //报错,不能访问父类中的私有成员 } class Son3 : private Bassic { public: void func() { m_A = 10; //不报错,父类中公共成员 到子类中是私有成员 m_B = 10; //不报错,父类中保护成员 到子类中是私有成员 //m_C = 10; //报错,不能访问父类中的私有成员 } }; //私有成员 类内可以访问,类外不可以访问 void test03() { Son3 s1; //s1.m_A = 100; //报错,父类中公共成员 到子类中是私有成员 //s1.m_B = 100; //报错,父类中保护成员 到子类中是私有成员 //s1.m_C = 100; //报错,不能访问父类中的私有成员 } class GrandSon : public Son3 { public: void func() { //m_A = 10; //报错,证明了Son3中的m_A是私有权限 //m_B = 10; //报错,证明了Son3中的m_B是私有权限 //m_C = 10; //报错,证明了Son3中的m_C是私有权限 } }; int main() { system("pause"); return 0; } |
CopyRight 2018-2019 实验室设备网 版权所有 |