【发布时间】:2021-06-01 01:29:18
【问题描述】:
这是我的代码:
#include <iostream>
using namespace std;
class motor
{
public:
motor();
~motor();
private:
};
motor::motor()
{
cout << "I'm the motor of this car." << endl;
}
motor::~motor()
{
cout << "the motor of this car is removed." << endl;
}
class doors
{
public:
doors();
~doors();
private:
};
doors::doors()
{
cout << "I'm the doors of this car." << endl;
}
doors::~doors()
{
cout << "the doors of this car are removed." << endl;
}
class wheels
{
public:
wheels();
~wheels();
private:
};
wheels::wheels()
{
cout << "I'm the wheels of this car." << endl;
}
wheels::~wheels()
{
cout << "the wheels of this car are removed." << endl;
}
class car
{
public:
car(motor m,doors d,wheels w):m(m),d(d),w(w) {
cout << "This car is assembled" << endl;
}
//car() {
// cout << "This car is assembled" << endl;
//}
~car() {
cout << "This car is removed." << endl;
}
private:
motor m;doors d;
wheels w;
};
int main() {
motor m;
doors d;
wheels w;
car(m, d, w);
//car();
return 0;
}
结果如下:
**我是这辆车的马达。
我是这辆车的门。
我是这辆车的轮子。
这辆车组装好了
这辆车的马达被拆掉了。
这辆车的门被拆除了。
这辆车的轮子被拆掉了。
这辆车已被移除。
这辆车的轮子被拆掉了。
这辆车的门被拆除了。
这辆车的马达被拆掉了。
这辆车的轮子被拆掉了。
这辆车的门被拆除了。
这辆车的马达被拆掉了。**
我对c++中构造函数和析构函数的本质不是很了解,请高人指教!
【问题讨论】:
-
我是学习c++的初学者。
-
这一行
car(motor m,doors d,wheels w):m(m),d(d),w(w)为每个电机、门和轮子调用两个复制构造函数。您没有自定义复制构造函数,因此它不会打印“我正在创建”消息。每个项目在传递给构造函数时被复制一次(按值传递),并在创建成员对象时被复制一次。有关更多信息,请咨询您的教学人员。 -
帮助你日后提问:你问为什么“这部分”重复了三遍,却没有说是哪部分。
-
对不起,这部分:这辆车的马达被拆了。这辆车的门被拆除了。这辆车的轮子被拆掉了。
标签: c++ constructor destructor