我正在尝试创建一个车辆注册门户.由于某些原因,get()只接收所有者名称

I am trying to create a vehicle registration portal. For some reason the get() is only receiving the owner name

本文关键字:于某些 get 所有者 注册 创建 一个      更新时间:2024-05-24

我正在尝试创建一个车辆注册门户。由于某些原因,get((只接收所有者的名称。

我正在尝试实践继承,并使用了从父类"继承属性的概念;车辆";。这是儿童班;获取信息";

#include<iostream>
using namespace std;
class vehicle{
private:
int noPlate;
char owner;
int registrationNo;
public:
int modelNo;
void setnoPlate_setRegNo_setOwner( char number, int rNumber, char ownerName){
noPlate = number;
registrationNo = rNumber;
owner = ownerName;
}
void displayInfo(){
cout<<"***Vehicle Information Portal***";
cout<<"              -----------           n";
cout<<"Owner Name: "<<owner<<"n";
cout<<"Registered Number Plate: "<<noPlate<<"n";
cout<<"Registration Numaber: "<<registrationNo<<"n";

}
};

继承车辆等级

class getInfo : public vehicle{
public:
void get(){
char tempNoPlate;
int tempRegNumber;
char tempOwnerName;
cout<<"n***Vehicle Registration Portal*** n";
cout<<"              -----------           n";
cout<<"Enter your Registratered Owner name for your vehice:"<<"n";
cin>>tempRegNumber;

cout<<"Enter your number plate of your vehice:"<<"n";
cin>>tempNoPlate;
cout<<"Enter your Registration Number of your vehice:"<<"n";
cin>>tempRegNumber;
setnoPlate_setRegNo_setOwner(tempNoPlate, tempRegNumber, tempOwnerName);
}
void display(){
displayInfo();
}

};

主要功能

int main(){
getInfo vehicleInfo;
vehicleInfo.get();
vehicleInfo.display();
return 0;
}
  • void get((中,您试图在int类型的注册号中获取所有者名称,因此它会破坏

  • 其次,所有者名称应该是除Char之外的字符串类型,因为Char只能存储1个字符。

  • 在类车辆中,noPlate是int类型的,您还必须在派生类中获取int类型的tempNoPlateget-info

这是正确的代码

#include<iostream>
using namespace std;
class vehicle{
private:
int noPlate;
string owner;//Change in owner data type
int registrationNo;
public:
int modelNo;
void setnoPlate_setRegNo_setOwner( int number, int rNumber, string ownerName){ //Change in ownername data type
noPlate = number;
registrationNo = rNumber;
owner = ownerName;
}
void displayInfo(){
cout<<"***Vehicle Information Portal***";
cout<<"              -----------           n";
cout<<"Owner Name: "<<owner<<"n";
cout<<"Registered Number Plate: "<<noPlate<<"n";
cout<<"Registration Numaber: "<<registrationNo<<"n";
}
};
class getInfo : public vehicle{
public:
void get(){
int tempNoPlate; //this should be of int type instead of char
int tempRegNumber;
string tempOwnerName; // change
cout<<"n***Vehicle Registration Portal*** n";
cout<<"              -----------           n";
cout<<"Enter your Registratered Owner name for your vehice:"<<"n";
getline(cin, tempOwnerName); // change,  GETLINE here is used to read space in name, you can use cin >> tempOwnerName but
// it wouldnt read space character.
cout<<"Enter your number plate of your vehice:"<<"n";
cin>>tempNoPlate;
cout<<"Enter your Registration Number of your vehice:"<<"n";
cin>>tempRegNumber;
setnoPlate_setRegNo_setOwner(tempNoPlate, tempRegNumber, tempOwnerName);
}
void display(){
displayInfo();
}

};
int main(){
getInfo vehicleInfo;
vehicleInfo.get();
vehicleInfo.display();
return 0;
}