在C++语法中,派生类中的构造函数操作是一个重要知识点,构造函数是用来初始化对象的。
基类构造函数总是先于派生类构造函数被调用。因为基类是派生类的基础,所以必须先创建基类。如果不指定要使用的基类构造函数,编译器就安排调用默认的基类构造函数。
规则:创建对象时首先调用基类的构造函数,然后调用派生类的构造函数;而销毁对象时首先调用派生类的析构函数,然后调用基类的析构函数。
#pragma once
#include <iostream>
#include <iomanip>
using namespace std;
//基类
class Box
{
public:
Box()
{
cout << "不带参数的父类构造函数\n";
}
Box(double lv, double wv, double hv) : length{ lv }, width{ wv }, height{ hv } //显式调用父类的构造函数
{
cout << "带三个参数的父类构造函数\n";
}
Box(double side) : Box{ side, side, side }
{
cout << "带一个参数的父类构造函数\n";
}
~Box()
{
}
double getLength()
{
return length;
}
double getWidth()
{
return width;
}
double getHeight()
{
return height;
}
double volumn() const
{
return length * width * height;
}
friend ostream& operator<<(ostream& stream, const Box& b