在创建派生类的构造函数时,有两种方法对数据进行初始化
第一种:在派生类中创建一个构造函数,然后初始化所有数据(从基类哪里继承来的数据和子类的数据)
这种方法显然是多余的,因为基类已经有了恰当的构造函数,为何还要重复构造呢,况且在派生类中对基类进行初始化这种做法
也是不可取的
第二种:在派生类中创建一个构造函数,用该构造函数调用基类的构造函数并且向构造函数传递初始值
显然第二种做法效率要高些,并且出错的几率要小些
//利用基类的构造函数初始化数据,例程如下:
#include<iostream>
#include<string>
using namespace std;
class father
{
protected:
string name;
int tall;
public:
father(string a,int i);
father(){cout<<"构造基类\n";}
void print(){cout<<name<<"身高为"<<tall<<"\n";}
~father(){cout<<"释放基类对象\n";}
};
father::father(string a,int i)
{
cout<<"\n在基类的构造函数内\n";
name=a;
tall=i;
print();