子类继承父类后实例化子类后 父类的构造函数是否也执行了 C++举例
时间: 2023-09-30 12:01:47 浏览: 157
在 C++ 中,当一个子类继承了父类后,实例化子类时,父类的构造函数会被自动调用。可以通过在子类构造函数中显式地调用父类构造函数来传递参数或执行额外的初始化操作。下面是一个简单的示例代码:
```
#include <iostream>
using namespace std;
class Parent {
public:
Parent() {
cout << "Parent constructor called." << endl;
}
};
class Child : public Parent {
public:
Child() {
cout << "Child constructor called." << endl;
}
};
int main() {
Child c;
return 0;
}
```
输出结果为:
```
Parent constructor called.
Child constructor called.
```
可以看到,当实例化 Child 类时,先调用了父类 Parent 的构造函数,再调用了子类 Child 的构造函数。
相关问题
子类继承父类后实例化子类后 父类的构造函数是否也执行了 举例
当子类继承父类后,如果子类没有显式地定义构造函数,则会默认继承父类的构造函数。因此,在实例化子类时,父类的构造函数也会被执行。下面是一个简单的 Python 代码示例:
```
class Parent:
def __init__(self):
print("Parent's constructor")
class Child(Parent):
def __init__(self):
print("Child's constructor")
super().__init__()
c = Child()
```
在这个例子中,`Child` 类继承自 `Parent` 类,它定义了一个自己的构造函数并在其中调用了 `super().__init__()` 方法来显式调用父类的构造函数。当我们实例化 `Child` 类时,会先执行 `Child` 类的构造函数,然后再执行 `Parent` 类的构造函数,输出结果为:
```
Child's constructor
Parent's constructor
```
子类使用父类的构造函数
子类可以使用父类的构造函数,通过调用super()函数来实现。在子类的构造函数中,可以使用super()函数来显式调用父类的构造函数,并传递相应的参数。这样就可以在子类对象创建时,先初始化父类的属性,再初始化子类自己的属性。以下是一个示例代码:
```python
class ParentClass:
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
class ChildClass(ParentClass):
def __init__(self, arg1, arg2, arg3):
super().__init__(arg1, arg2)
self.arg3 = arg3
parent_obj = ParentClass("Hello", "World")
child_obj = ChildClass("Hello", "World", "!")
```
在上面的例子中,ChildClass继承了ParentClass,并在自己的构造函数中使用了super()函数来调用父类的构造函数,传递了arg1和arg2作为参数。这样在创建ChildClass对象时,会先调用父类的构造函数进行初始化,再进行子类自己的属性初始化。
阅读全文