假设我们有发动机类motor,车门类doors,车轮类wheels每个类都有构造函数打印输出类名,每个类有析构函数打印输出析构类名。现在请用这些类组合成汽车类car,汽车类也有自己的构造与析构函数,打印输出构造与析构汽车类。
时间: 2024-09-30 10:15:20 浏览: 7
当你想要创建一个汽车类Car,结合发动机Motor、车门Doors和车轮Wheels这三个部分时,你可以按照面向对象的设计原则来组织代码。首先,每个基础类(如Engine, Doors, Wheels)会有一个初始化(构造)函数用于打印类名,并提供析构函数在对象生命周期结束时打印析构信息。然后,汽车类Car会有自己的构造函数,它会实例化并初始化这三种组件:
```cpp
class Engine {
public:
Engine() { cout << "Engine constructor called." << endl; }
~Engine() { cout << "Engine destructor called." << endl; }
};
class Doors {
public:
Doors() { cout << "Doors constructor called." << endl; }
~Doors() { cout << "Doors destructor called." << endl; }
};
class Wheels {
public:
Wheels() { cout << "Wheels constructor called." << endl; }
~Wheels() { cout << "Wheels destructor called." << endl; }
};
class Car {
private:
Engine engine;
Doors doors;
Wheels wheels;
public:
// 构造函数
Car() {
cout << "Car constructor called." << endl;
engine = Engine(); // 初始化发动机
doors = Doors(); // 初始化车门
wheels = Wheels(); // 初始化车轮
}
// 析构函数
~Car() {
cout << "Car destructor called." << endl;
}
};
```
在这个例子中,当你创建一个Car对象时,它的构造函数会被调用,所有内部组件的构造函数也会跟着被调用,同时在对象销毁时(即调用析构函数时),汽车类和其组件的析构函数都会被依次执行。