码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2014-11-06 17:36:52      阅读:253      评论:0      收藏:0      [点我收藏+]

标签: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:每天一小步。






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

标签:c++      继承   

原文地址:http://blog.csdn.net/ricardo_he/article/details/40862813

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!