C++ 给父类带参构造函数的赋值

在类的使用中,默认的构造函数不带任何参数,但是也会因为需要而使用带参数的构造函数。
在带参的构造函数中,是如何继承的呢,这里我们通过使用基类,子类,孙类的两重继承来观察,如何给带参构造函数赋值的。

首先构造带参的基类构造函数:
        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 
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();
}

执行结果:

C++ 给父类带参构造函数的赋值_第1张图片

你可能感兴趣的:(C/C++学习,c++,算法,c语言)