这是我的问题 - 执行此代码后将创建多少个对象?
class vehicle
{ public:
int Weight, HorsePower;
vehicle(int x, int y)
{ Weight = x;
HorsePower = y;
}
};
class car : public vehicle
{ public:
car(int x, int y) : vehicle(x, y)
{ }
};
class motorcycle : private vehicle
{ public:
motorcycle(int x, int y):
{ Weight = x;
HorsePower = y;
}
};
int _tmain(int argc, _TCHAR* argv[])
{ car Ferrari(4056,540);
motorcycle Suzuki(429,103);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我和我的朋友争论的是,我的观点是4件物品 - 汽车,摩托车和2辆车,因为每辆车都是车辆.这是真的?
代码格式错误: vehicle没有默认构造函数,唯一的构造函数motorcycle需要其vehicle基类的默认构造函数.
假设添加了一个默认构造函数vehicle(并且:从构造函数中删除了无关的构造函数motorcycle),我在此处显示的用户代码中计算了16个:
两个论点main: argc和argv
八中建设Ferrari: car,vehicle,Weight,以及HorsePower加x和y的的参数car构造函数和x和y的的参数vehicle构造函数.
六,构造Suzuki: motorcycle,vehicle和Weight,以及构造函数HorsePower的x和y参数motorcycle.
我希望我没有错过任何一个.计算在C++程序中创建的对象数量是一件很愚蠢的事情:创建了许多很多对象,通常它们无关紧要.