C++公有继承、保护继承、私有继承

先上代码

#include<iostream>
using namespace std;

class Animal{

public:
   string name;
   int age;
private:
    double weight;
};

/*测试私有继承,Dog2和Xiudog2*/
//私有继承:自己可以拿到从父辈那里的public和protected遗产,
//但是私有继承就是很自私,自己从父辈哪里拿到的资产仅仅是自己用,
//绝对不给自己的孩子用
class Dog2 : private Animal
{
    void run() {
        this->age=11;
        this->name="Dog2";
    }
};
class XiuDog2 : public Dog2
{
    void run(){
        //this->age = 6;//报错
        //this->name = "hei嘿";//报错
    }
};

/*测试保护继承,Dog1和XiuDog*/
//保护继承:自己可以拿到从父辈那里的public和protected遗产,
//而且保护继承很无私,自己从父辈哪里拿到的资产 不仅仅 是自己用,
//也可以给自己的孩子用
class Dog1 : protected Animal
{
    void run(){
        this->name = "dog1";
        this->age = 6;
    }
};

class XiuDog : public Dog1
{
    void run(){
        this->age = 6;//正确
        this->name = "hei嘿";//正确
    }
};

/*测试公有继承,Dog*/
class Dog : public Animal
{
    void run(){
        this->name = "dog";
    }
};

int main()
{
    
   return 0;
}

保护继承简单总结

保护继承:
我从父亲那继承过来的public和protected成员,来到我这都变成protected,我的儿子公有继承我时,我儿子类的内部仍然可以使用我从我父亲那继承过来的成员

私有继承简单总结

私有继承:
我从父亲那继承过来的public和protected成员,来到我这都变成private,我的儿子公有继承我时,我儿子类的内部不可以使用我从我父亲那继承过来的成员

公有继承官方总结

公有继承时,基类中各成员属性保持不变,基类中private成员被隐藏.派生类的成员只能访问基类中通public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员.

保护继承官方总结

保护继承时,基类中各成员属性均变成protected,并且基类中private成员被隐藏.派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何成员

私有继承官方总结

私有继承时,基类中各成员属性中private成员被隐藏.派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何成员.

其他

不知道什么是基类,什么是派生类,什么是成员,什么是基类对象,什么是派生类对象----->请看下边的代码示例:

#include<iostream>
using namespace std;

class Aniaml//Animal就是基类
{
public:
    string name;
    void run(){};//name和run就是成员
};

class Dog : public Aniaml//Dog继承了Animal,Dog就是Aniaml的派生类
{
    void fun(){
        this->name= "修狗";
    }
};

int main(){

    //何为对象?
    Aniaml animal;
    //animal就是(基类)对象,
    //可以类比===>int a;
    //Aniaml相当于一种类型,与int对应,即:类≈类型;
    //animal相当与一个变量,与a对应,即:对象≈变量.

    Dog dog;//dog就是Animal的派生类的对象

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏过山河,踏过海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值