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>
<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>
然后,则是我们的主文件:
<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:每天一小步。
原文地址:http://blog.csdn.net/ricardo_he/article/details/40862813