c++ 继承

一.继承介绍:

c++ 是面向对象语言,核心就是在与对类的设计,通过继承机制,可以利用已有的类来定义新的类。所定义的新的类不仅拥有新定义的成员,而且还同时拥有旧的成员。用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。基类负责定义所有类共同拥有的成员,而每个派生类定义各自特有的成员。派生类必须通过使用类派生列表明确指出它是从哪个类继承而来,并说明它是公有继承,保护继承还是私有继承。

公有继承

如果采用公用继承,基类中的访问属性在派生类中保持不变,即:
基类中的私有属性——派生类中私有属性
基类中的共用属性——派生类中共用属性
基类中的受保护属性——派生类中受保护属性

私有继承

如果采用私有继承,基类中的访问属性在派生类中发生如下变化,即:
基类中的私有属性——派生类中不可访问
基类中的共用属性——派生类中私有属性
基类中的受保护属性——派生类中私有属性

保护继承

受保护的成员不能被类外访问,这一点类似私有成员,可以认为保护成员对类的用户来说是私有的。但是有一点与私有成员不同:受保护成员可以被派生类的成员函数引用。
如果采用保护继承,基类中的访问属性在派生类中发生如下变化,即:
基类中的私有属性——派生类中不可访问
基类中的共用属性——派生类中受保护属性
基类中的受保护属性——派生类中受保护属性

实验:

#include <bits/stdc++.h>
using namespace std;
class Person
{
    public:
    void setg(string nm,int ag)
    {
        Name=nm;
        age=ag;
    }
    string getname()
    {
        return Name;
    }
    int getage()
    {
        return age;
    }
    void show()
    {
        cout<<Name<<' '<<age<<endl;
    }
    private:
    string Name;
    int age;
};
class student:public Person//公有继承
{
    public:
    void set(int x,int y,int a,string nm)
    {
        setg(nm,a);
        Class=x;
        degree=y;
    }
    void sshow()
    {
        cout<<Class<<' '<<degree<<endl;
    }
    int getdegree()
    {
        return degree;
    }
    int getClass()
    {
        return Class;
    }
    private:
    int Class,degree;
};
int main()
{
    student a;
    a.set(3,2,12,"ags");
    a.show();
    return 0;
}

运行结果为

posted @ 2019-10-13 14:33  tryatry  阅读(184)  评论(0编辑  收藏  举报