在类的使用中,默认的构造函数不带任何参数,但是也会因为需要而使用带参数的构造函数。
在带参的构造函数中,是如何继承的呢,这里我们通过使用基类,子类,孙类的两重继承来观察,如何给带参构造函数赋值的。
首先构造带参的基类构造函数:
class Base:
{
public:
Base(int num1, int num2);// 基类Base的带参构造函数
...
}
创建子类Child,使子类继承Base类
class Child : public Base
{
public:
// 子类Child的带参构造函数,其中将num1,num2赋值给了Base的带参构造函数
Child(int num1, int num2, int num3, int num4) :Base(num1, num2)
...
}
创建孙类Grandson,使孙类继承了子类Child
class Grandson :public Child
{
public:
// 孙类Grandson的带参构造函数,其中将num1,num2,num3,num4赋值给了Child的带参构造函数
Grandson(int num1, int num2, int num3,
int num4, int num5, int num6) : Child(num1, num2, num3, num4)
...
}
示例程序:
// Len2024_0106_01.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
using namespace std;class Base
{
private:int m_nNum1;int m_nNum2;public:Base(int num1, int num2){m_nNum1 = num1;m_nNum2 = num2;}void Show(){cout << "Base Class: m_nNum1="<< m_nNum1<<",m_nNum2="<< m_nNum2 << endl;}
};class Child : public Base
{
private:int m_nNum3;int m_nNum4;public:Child(int num1, int num2, int num3, int num4) :Base(num1, num2) {m_nNum3 = num3;m_nNum4 = num4;}void Show(){Base::Show();cout << "Child Class: m_nNum3=" << m_nNum3 << ",m_nNum4=" << m_nNum4 << endl;}
};class Grandson :public Child
{
private:int m_nNum5;int m_nNum6;
public:Grandson(int num1, int num2, int num3, int num4, int num5, int num6) :Child(num1, num2, num3, num4){m_nNum5 = num5;m_nNum6 = num6;}void Show(){Child::Show();cout << "Grandson Class: m_nNum5=" << m_nNum5 << ",m_nNum6=" << m_nNum6 << endl;}
};int main()
{Grandson gChild = Grandson(1001,2001,3001,4001,5001,6001);gChild.Show();
}
执行结果: