C++基类和派生类的构造函数

本文探讨了C++中派生类如何在构造函数中调用基类构造函数,解释了构造函数的调用顺序和规则。创建派生类对象时,基类构造函数总是先于派生类构造函数执行,遵循自顶向下、从基类到派生类的顺序。同时强调了派生类构造函数只能调用直接基类的构造函数,不能显式调用间接基类的构造函数,以避免重复初始化。
摘要由CSDN通过智能技术生成

在设计派生类时,对继承过来的成员变量的初始化工作也要由派生类的构造函数完成,但是大部分基类都有 private 属性的成员变量,它们在派生类中无法访问,更不能使用派生类的构造函数来初始化。

这种矛盾在C++继承中是普遍存在的,解决这个问题的思路是:在派生类的构造函数中调用基类的构造函数。

下面的例子展示了如何在派生类的构造函数中调用基类的构造函数:

  1. ​
    #include<iostream>
    using namespace std;
    //基类People
    class People{
    protected:
    char *m_name;
    int m_age;
    public:
    People(char*, int);
    };
    People::People(char *name, int age): m_name(name), m_age(age){}
    //派生类Student
    class Student: public People{
    private:
    float m_score;
    public:
    Student(char *name, int age, float score);
    void display();
    };
    //People(name, age)就是调用基类的构造函数
    Student::Student(char *name, int age, float score): People(name, age), m_score(score){ }
    void Student::display(){
    cout<<m_name<<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Elanie1024

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

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

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

打赏作者

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

抵扣说明:

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

余额充值