21xrx.com
2024-12-22 15:28:14 Sunday
登录
文章检索 我的文章 写文章
如何在c++中调用父类的构造函数?
2023-07-09 12:45:11 深夜i     --     --
c++ 继承 父类构造函数 调用 语法

在c++中,子类会继承父类的成员函数和变量。在实例化子类对象时,必须要调用父类的构造函数,这样才能将父类的成员变量初始化并正常工作。本文将介绍如何在c++中调用父类的构造函数。

在c++中,父类的构造函数可以通过子类构造函数中进行调用。子类构造函数被调用时,会首先调用父类的构造函数,然后才是子类的构造函数。

现假设有以下父类:


class Parent {

public:

  Parent(int x)

   this->x = x;

 

  int x;

};

子类需要调用父类构造函数,并且带有一个额外的成员变量:


class Child : public Parent {

public:

  Child(int x, int y) : Parent(x)

   this->y = y;

 

  int y;

};

在以上代码中,子类构造函数中调用了父类的构造函数,使用了冒号来表示。注意,在冒号后面必须要带上父类的构造函数,并传入相应的参数,这样子类才能继承父类的成员变量和函数。

当实例化子类对象时,将调用子类的构造函数来初始化子类成员变量,并同时调用父类的构造函数来初始化父类成员变量。下面的代码演示了如何实例化一个子类对象:


Child child_obj(10, 20); // 实例化子类对象

cout << child_obj.x << endl;  // 输出父类成员变量

cout << child_obj.y << endl;  // 输出子类成员变量

上述代码将输出以下结果:


10

20

可以看出,在子类实例化时,父类的构造函数被调用,通过初始化父类的成员变量将x设置为10。同时,子类的构造函数也被调用,通过初始化子类成员变量将y设置为20。

总结一下,在c++中,子类必须调用它继承的父类的构造函数,否则父类成员变量将不会被初始化。在子类构造函数中调用父类的构造函数,使用冒号语法,并在冒号后面加上父类的构造函数并传入相应的参数。通过这种方式,在实例化子类对象时,父类和子类的构造函数都会被调用,从而完成所有成员变量的初始化。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复