将创建多少个对象?

Iva*_*nov 1 c++ oop

这是我的问题 - 执行此代码后将创建多少个对象?

        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辆车,因为每辆车都是车辆.这是真的?

Jam*_*lis 7

代码格式错误: vehicle没有默认构造函数,唯一的构造函数motorcycle需要其vehicle基类的默认构造函数.

假设添加了一个默认构造函数vehicle(并且:从构造函数中删除了无关的构造函数motorcycle),我在此处显示的用户代码中计算了16个:

  • 两个论点main: argcargv

  • 八中建设Ferrari: car,vehicle,Weight,以及HorsePowerxy的的参数car构造函数和xy的的参数vehicle构造函数.

  • 六,构造Suzuki: motorcycle,vehicleWeight,以及构造函数HorsePowerxy参数motorcycle.

我希望我没有错过任何一个.计算在C++程序中创建的对象数量是一件很愚蠢的事情:创建了许多很多对象,通常它们无关紧要.