C/C++:C++执行父类的构造方法

C++执行父类的构造方法。这是在原来那篇类的继承的基础上写的。


首先,我们创建一个工程。然后建立我们的父类。


People.h:

<span style="font-size:18px;">#ifndef PEOPLE_H
#define PEOPLE_H

#include<iostream>

using namespace std;

class People{
    public:
        People();//People的默认构造方法
        People(int age, int sex);//构造方法不用返回类型
        int get_age();//获取年龄
        int get_sex();//获取性别

    private:
        int age;
        int sex;//指定1为男,0为女;
};

#endif // PEOPLE_H
</span>

然后则我们父类中的cpp文件来具体写我们的构造方法:


<span style="font-size:18px;">#include "People.h"

People::People(){
    this -> age = 18;
    this -> sex = 1;
}

People::People(int age, int sex){
    this -> age = age;
    this -> sex = sex;
}//构造方法不用返回类型

int People::get_age(){
    return this -> age;
}

int People::get_sex(){
    return this -> sex;
}
</span>

好,父类已做好准备,我们再来创建一个子类:


<span style="font-size:18px;">#ifndef MAIN_H
#define MAIN_H

#include "People.h"

class Main:public People{
    public:


    private:
};//继承父类people

#endif // MAIN_H
</span>

这样我们的子类就继承了父类People。


然后,则是我们的主文件:

<span style="font-size:18px;">#include "Main.h"

int main()
{
    Main *p = new Main();
    cout << p->get_age() << endl;
    cout << p->get_sex() << endl;
    delete p;
    return 0;
}
</span>

现在就可以运行了。。

而结果也就是 18和1;为什么是这个结果呢。。因为,现在我们的子类Main只是继承了People类,

没写自己的构造方法,将数据传个父类。。也就是执行了People类的那个默认的构造函数。

好。现在,我们来写入子类Main的构造方法给父类传入数据;


Main.h:

<span style="font-size:18px;">#ifndef MAIN_H
#define MAIN_H

#include "People.h"

class Main:public People{
    public:
        Main(int age, int sex);

};//继承父类people

#endif // MAIN_H
</span>

现在子类的构造方法写好了,那我们该怎么样做,来把数据传给父类呢?

<span style="font-size:18px;">#include "Main.h"

Main::Main(int age, int sex):People(age ,sex){

}
</span>

就是利用“:”这个。来将我们子类中的构造方法的数据传回给父类。


好,我们再改改主函数来看看效果:


<span style="font-size:18px;">#include "Main.h"

int main()
{
    int a = 16;
    int b = 0;
    Main *p = new Main(a, b);
    cout << p->get_age() << endl;
    cout << p->get_sex() << endl;
    delete p;
    return 0;
}
</span>


此时,我们是输出结果就是16和0了。



PS:每天一小步。






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值