C++中的继承

来源:互联网 发布:明底线知敬畏演讲稿 编辑:程序博客网 时间:2024/05/23 07:25
<span style="font-size:14px;">#include<iostream>using namespace std;/**继承:通过继承已有类,来建立新类。继承关系有protected,private,public .这些继承关系的修饰,是为了保证数据访问的安全性。但是感觉搞那么麻烦没什么用 。自己做到安全访问就行了、而且现在有编译器进行语法错误判断,现在还是简单说下.根据编译器语法提示得出下面几条结论;实际使用的时候我们都是直接使用public继承*///基类A;  1.一个类的实例对象(生成)只可以访问它的public修饰的成员方法和成员变量;但是一个类中定义的成员方法可以自由//访问该类中的所有方法和变量。class A{public:int i_a;void f1_a(){this->k_a = 3;}protected: void f2_a();int j_a;private :int k_a;void f0_a();};//类B公有继承A   2.如果一个类是公有继承它的基类,那么在该类中它的成员方法可以访问除了1中所说的外,还可以访问//它的基类中由public或者protected修饰的方法和变量。该类生成的实例对象只可以访问它的基类中由public修饰的成员方法和变量class B :public A{public:int i_b;void f3_b(){f1_a();f2_a();}protected:int j_b;void f4_b();private:int m_b;void f5_b();};//类C保护继承B     如果一个类保护继承一个基类,那么该类中的成员方法可以可以访问它的基类中由public或者protected修饰的//成员方法和变量。该类生成的实例对象,只可以访问它的基类中由public修饰成员方法和变量class C :protected B{public:int i_c;void f5_c(){}protected:int j_c;void f4_c();private:int n_c;void f6_c();};A a;B b;C c;int main(){//下面是访问控制//对象a可以访问的地方a.f1_a();a.i_a;return 0;}/**派生类的构造函数,这里与java不同,C++中除了调用自己的构造函数外,还要自己手动调用其基类的构造函数、*/class Student{protected:int num;string name;char sex;public:Student(int n,string nam,char s){num = n;name = nam; sex = s;}~Student(){}};class Student1 :public Student{private :int age;string addr; public ://构造函数,调用基类的构造函数Student1(int n, string nam, char s,int a, string ad) :Student(n, nam, s){age = a;addr = ad; }};/*C++中允许类多重继承,但是不提倡在实际中使用多重继承,鉴于此,在java中就规定只能使用单继承class D:public A,private B,protected C{}*//*C++中多重继承会导致派生类中可能会有多重复数据和方法,导致二义性C++为我们在继承的时候,添加virtualclass D: virtual public A{}*/</span>

0 0