visual studio-对象问题C++

visual studio - Object issues C++

本文关键字:C++ 问题 对象 studio- visual      更新时间:2023-10-16

我没有错误,它构建并运行,但没有显示车辆类型。感谢所有的帮助。我试图将字符串"car"存储在我的对象中,但它不起作用。

string vType[] = {"Car","Van","Lorry","Motorbike","Tanker"};

我试着用

 Vehicle one;
one.setVehicleType(vType[0]);
cout << "Vehicle Type:" << one.getVehicleType() << endl;

车辆.ccp

#include "Vehicle.h"
Vehicle::Vehicle() {
vehicleMake = ' ';
}
Vehicle::Vehicle(string type){  
    vehicleVehicleType = type;
}
Vehicle::~Vehicle(){
}


//getMethods

string Vehicle::getFuelType()const{
    return vehicleFuelType;
}
string Vehicle::getVehicleType()const{
    return vehicleVehicleType;
}


//setMethods
void Vehicle::setMake(string make){
    vehicleMake = make;
}

void Vehicle::setVehicleType(string type){
    vehicleFuelType = type;
}

车辆.h

    class Vehicle{
    public:     
    //Default Constructor
        Vehicle();
    //Overload constructor
        Vehicle(char, string, string, string, string, int, int, int, int);
    //Destructor
        ~Vehicle();
    //Accessor Functions
        //get methods
        string vehicleType() const;
    void setVehicleType(string);
        //setFuelType - for Vehicle
    protected:  
        string vehicleVehicleType;

看起来你在这里设置了错误的成员:

void Vehicle::setVehicleType(string type){
    vehicleFuelType = type;
}

你可能是指

void Vehicle::setVehicleType(string type){
    vehicleVehicleType = type;
}

我认为您在setter函数中设置了错误的字段:

void Vehicle::setVehicleType(string type){
    vehicleFuelType = type;
}

应该是

void Vehicle::setVehicleType(string type){
    vehicleVehicleType = type;
}

而且,由于您有合适的构造函数,这是创建对象的更好方法:

Vehicle one(vType[0]);