码图:166 工具类Vehicle(C++)

    科技2025-09-12  75

    题目描述:

    引入头文件Vehicle.h,它的内容如下:

    #include <iostream> using namespace std; class Vehicle{ public: Vehicle(){ cout<<"Vehicle constructor..."<<endl; } ~Vehicle(){ cout<<"Vehicle destructor..."<<endl; } virtual void display() const =0; static Vehicle * createCar(); static Vehicle * createTruck(); static Vehicle * createBoat(); };

    将Vehicle类作为基类,派生出Car类,Truck类和Boat类。

    完成Car类,Truck类和Boat类的构造函数和析构函数,参照Vehicle的构造函数和析构函数输出语句, 如Car类的构造函数输出: Car constructor…回车

    实现这三个派生类的display方法,输出This is a ***! 例如Car类的display方法输出: This is a car!回车

    另外在你的代码中必须加入Vehicle类的createCar()、createTruck()和createBoat()方法的实现, 且这三个方法的实现必须在Car类,Truck类和Boat类的定义之后,实现如下:

    Vehicle * Vehicle::createCar(){return new Car();} Vehicle * Vehicle::createTruck(){return new Truck();} Vehicle * Vehicle::createBoat(){return new Boat();}

    实现:

    #include"Vehicle.h" class Car :public Vehicle { public: Car() { cout << "Car constructor..." << endl; } virtual void display()const { cout << "This is a car!"<<endl; } ~Car() { cout << "Car destructor..." << endl; } }; class Truck :public Vehicle { public: Truck() { cout << "Truck constructor..." << endl; } virtual void display()const { cout << "This is a truck!"<<endl; } ~Truck() { cout << "Truck destructor..." << endl; } }; class Boat :public Vehicle { public: Boat() { cout << "Boat constructor..." << endl; } virtual void display()const { cout << "This is a boat!"<<endl; } ~Boat() { cout << "Boat destructor..." << endl; } }; Vehicle* Vehicle::createCar() { return new Car(); } Vehicle* Vehicle::createTruck() { return new Truck(); } Vehicle* Vehicle::createBoat() { return new Boat(); }
    Processed: 0.010, SQL: 8