C++ 继承方式 //语法:class 子类 :继承方式 父类 //继承方式 三种: //1.公共继承 //2.保护继承 //3.私有继承
1 //继承方式 2 //语法:class 子类 :继承方式 父类 3 //继承方式 三种: 4 //1.公共继承 5 //2.保护继承 6 //3.私有继承 7 8 #include <iostream> 9 #include <string> 10 using namespace std; 11 12 //继承方式 13 //1.公共继承 14 class Base1 15 { 16 public: 17 int m_A; 18 protected: 19 int m_B; 20 private: 21 int m_C; 22 23 }; 24 //1.公共继承 25 class Son1 :public Base1 26 { 27 public: 28 void func() 29 { 30 m_A = 10; //父类中的公共权限成员 到子类中依然是 公共权限 31 32 m_B = 20; //父类中的公共权限成员,到子类依然是 保护权限 33 //类内可以访问 类外不可以访问 34 35 //m_C = 30; //父类中的私有全程成员,到子类中 访问不到 36 } 37 }; 38 39 void test01() 40 { 41 Son1 s1; 42 s1.m_A = 100; 43 //s1.m_B = 100; //类内可以访问 类外不可以访问 44 45 46 } 47 //保护继承 48 class Base2 49 { 50 public: 51 int m_A; 52 protected: 53 int m_B; 54 private: 55 int m_C; 56 57 58 }; 59 60 class Son2 : protected Base2 61 { 62 public: 63 void func2() 64 { 65 m_A = 100; //父类中公共成员到 子类中变为保护权限 66 m_B = 100; //没有发生变化 还是私有成员 67 68 //m_C = 100; //父类中私有成员 子类访问不到 69 } 70 }; 71 72 void test02() 73 { 74 Son2 s2; 75 //s2.m_A = 1000; //在Son2中已经变为了 保护权限 所以类外 访问不到 76 //s2.m_B = 200; //在Son2中已经变为了 保护权限 所以类外 访问不到 77 //s2.m_C = 551; //私有成员不可以访问 78 79 80 } 81 //私有继承 82 class Base3 83 { 84 public: 85 int m_A; 86 protected: 87 int m_B; 88 private: 89 int m_C; 90 91 }; 92 class Son3 :private Base3 93 { 94 public: 95 void func3() 96 { 97 m_A = 100; //父类中公共成员到子类中变为 私有成员 98 99 m_B = 200; //父类中保护成员到子类中变为 私有成员 100 101 //m_C = 120; //父类中的私有成员 子类不可以访问 102 } 103 104 }; 105 class GrandSon4 : public Son3 106 { 107 public: 108 void func4() 109 { 110 //m_A = 1000; //到了 Son3中 m_A 变为私有,即使是 儿子也访问不到 111 //m_B = 2000; //到了 Son3中 m_A 变为私有,即使是 儿子也访问不到 112 } 113 114 }; 115 void test03() 116 { 117 Son3 s3; 118 119 //s3.m_A = 200; //到Son3中 变为私有成员 访问不到 120 //s3.m_B = 100; //到Son3中 变为私有成员 访问不到 121 //s3.m_C = 300; //父类中的私有成员 子类不可以访问 122 123 } 124 125 int main() 126 { 127 128 129 system("pause"); 130 131 return 0; 132 133 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15114115.html