#include<iostream> using namespace std; class Fix{ public: Fix(){}; double money()const{return 0.0;} }; class Baseclass1{ public: Baseclass1(int x){ N=x; cout<<"The number of this people is:"<<N<<endl; } private: int N; }; class Baseclass2{ public: Baseclass2(string z){ A=z; cout<<"The name of this people is:"<<A<<endl; } private: string A; }; class Baseclass3{ public: Baseclass3(double money,double hour,double sell){ } private: double Money,Hour,Sell; }; class Manager:public Baseclass1,public Baseclass2,public Baseclass3,public Fix{ public:Manager(); Manager(int x);Manager(string x); double money()const{return 8000.0;} }; Manager::Manager(int x):Baseclass1(x){ } Manager::Manager(string x):Baseclass2(z){ } class Tech:public Baseclass1,public Baseclass2,public Baseclass3,public Fix{ public:Tech(); Tech(int x);Tech(string x); double money()const{return 100*H;} private: double H; }; Tech::Tech(int x):Baseclass1(x){ } Tech::Tech(string x):Baseclass2(z){ } class Seller:public Baseclass1,public Baseclass2,public Baseclass3,public Fix{ public: Seller(); Seller(int x);Seller(string x); double money()const{return Sell*0.04;} private: double Sell; }; Seller::Seller(int x):Baseclass1(x){ } Seller::Seller(string x):Baseclass2(z){ } class sema:public Baseclass1,public Baseclass2,public Baseclass3,public Fix{ public: sema(); sema(int x);sema(string x); double money()const{return 5000+Sell*0.05;} private: double Sell; }; sema::sema(int x):Baseclass1(x){ } sema::sema(string x):Baseclass2(z){ } int main(){ Manager q; double money; money=q.money(); Manager x(10000); Manager z(Tom); cin>>Sell>>endl; cin>>Hour>>endl; }帮我改一下错
时间: 2024-03-02 17:52:31 浏览: 99
这段代码存在多处错误,我来一一指出并做出修改:
1. 在 Manager 类和 Tech 类中的 Baseclass3 构造函数中没有对类的成员变量进行赋值,应该修改为:
```
Baseclass3(double money,double hour,double sell): Money(money), Hour(hour), Sell(sell) {}
```
2. 在 Manager 类和 Tech 类中的构造函数中,没有对类的成员变量进行初始化,应该添加以下语句:
```
Manager(int x) : Baseclass1(x), Baseclass2(""), Baseclass3(0.0, 0.0, 0.0), Fix() {}
Manager(string x) : Baseclass1(0), Baseclass2(x), Baseclass3(0.0, 0.0, 0.0), Fix() {}
Tech(int x) : Baseclass1(x), Baseclass2(""), Baseclass3(0.0, 0.0, 0.0), Fix() {}
Tech(string x) : Baseclass1(0), Baseclass2(x), Baseclass3(0.0, 0.0, 0.0), Fix() {}
```
3. 在 main 函数中,没有定义变量 Sell 和 Hour,应该先定义这两个变量,再读入它们的值:
```
double Sell, Hour;
cin >> Sell >> Hour;
```
4. 在 sema 类中,构造函数中的参数名字和类的成员变量名字重复了,应该修改为:
```
sema(int x) : Baseclass1(x), Baseclass2(""), Baseclass3(0.0, 0.0, 0.0), Fix() {}
sema(string x) : Baseclass1(0), Baseclass2(x), Baseclass3(0.0, 0.0, 0.0), Fix() {}
```
最终修改后的代码如下:
阅读全文