C++继承和派生

 一基础知识

1.继承和派生的概念

        子类继承父类,父类派生子类

2.子类所继承的东西

        除了“构造函数”和“析构函数”,父类所有成员函数,以及数据成员,都会被子类继承

        father.h

#pragma once 
#include<string>
#include<iostream>
using namespace std;

class father{
    public:
        father( string name , int age);
        ~father();
    private:
        string name;
        int age;

}

        father.cpp

#include"father"

father::father( string name , int age){

}

father::father(){

}

        son.h

#include"father.h"

class son:public father{
    public:
        son (string name ,int age, string game)
        ~son();
    private:
        string game;

}

        son.cpp

#include"son.h"


//创建son对象时,会调用构造函数
//会先调用父类的构造函数,用来初始化父类继承的数据
//再调用自己的构造函数,用来初始自己定义的数据
son::son(string name , int age , string game){
    //没有体现父类的构造函数,那就会自动调用父类的默认构造函数,如果父类没有默认构造函数就会                       报错


}

//当父类没有默认构造时更改方法

son::son( string name , int age , string game) :father(name , age){

}

son::~son(){

}

3.当子类与父类有重名方法时

        子类对象先在自己定义的方法中寻找,如果有,就调用自己定义的方法,如果找不到,就到父类方法中寻找,如果还是找不到,就会发生报错

 protected(保护)访问权限

子类在public继承下无法访问父类的私有成员

1.既想属性私有,又要被继承的子类成员函数直接使用可以将属性定义为protected

#pragma once

class father{
    public:
        father();
        ~father();
    protected:
        int age;
        string name;

}

class son:public father{
    public:
        son();
        ~son();
        void description();
    private;
        string game;

}

void son::description(){
    cout<<this->age<<endl;   //直接使用
    cout<<this->name<<endl;  //直接使用
    cout<<this->game<<endl;
}

三种继承方式

public继承【使用最频繁】
继承前权限被继承后权限
publicpublic
protectedprotected
privateprivate
private继承
继承前权限被继承后权限
publicprivate
protectedprivate
privateprivate
protected继承
继承前权限被继承后权限
publicprotected
protectedprotected
privateprivate

小结:

public:继承全不变

private:继承全变私

protected:继承只把public降级为protected

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值