C++求帮忙改错 急

m0_65570953 2022-05-11 14:10:21

error C2664: “Teacher::Teacher(double,double,double,std::string)”: 不能将参数 3 从“std::string”转换为“double”
1>          没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符

 

 

 

#include<iostream>
#include<string>
using namespace std;
class Teacher
{
    protected:
        double m_dFixedWage;//固定工资
        double m_dPeriodAllow;//课时补贴
        string m_sName;//教师名字
        double m_dClassHour;//课时
public:
    Teacher(double dFixedWage,double dPeriodAlllow,double dClassHour,string sName);
    virtual double GetWage()//计算总工资
    {
        return m_dClassHour * m_dPeriodAllow+m_dFixedWage;};
    virtual void display()=0;//纯虚函数
    void SetName(string sName);//教师的名称
};
class Professor:public Teacher
{
public:
    Professor(double dClassHour,string sName,double dFixedWage=5000,double dPeriodAllow=50):Teacher(dFixedWage,dPeriodAllow,dClassHour,sName){};
    virtual void display(){
        cout<<"教授"<<"姓名:"<<m_sName<<"课时:"<<m_dClassHour<<endl;
    };
};
    class AssociateProfessor: public Teacher
    {
    public:
        AssociateProfessor(double dClassHour,string sName,double dFixedWage=3000,double dPeriodAllow=30):Teacher(dFixedWage,dPeriodAllow,sName,dClassHour){};
            virtual void display(){
                cout<<"副教授"<<"姓名:"<<m_sName<<"课时:"<<m_dClassHour<<endl;
        };
    };
        class Lecturer:public Teacher{
        public:
            Lecturer(double dClassHour,string sName,double dFixedWage=3000,double dPeriodAllow=20):Teacher(dFixedWage,dPeriodAllow,dClassHour,sName){};
            virtual void display(){
                cout<<"讲师"<<"姓名:"<<m_sName<<"课时:"<<m_dClassHour<<endl;
            }
        };
        int main()
        {
            Professor pro(100,"q");
            pro.display();
            cout<<"工资:"<<pro.GetWage()<<endl;
            AssociateProfessor ass(100,"w");
            ass.display();
            cout<<"工资:"<<ass.GetWage()<<endl;
            Lecturer lec(100,"e");
            lec.display();
            cout<<"工资:"<<lec.GetWage()<<endl;
            system("pause");
            return 0;
        }

 

...全文
126 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

[广而告之]http://t.csdn.cn/2ZOko 试试在线IDE+ChatGPT,有问题直接在IDE里求助ChatGPT

img

Andy1989630 2022-07-06
  • 打赏
  • 举报
回复

 AssociateProfessor(double dClassHour,string sName,double dFixedWage=3000,double dPeriodAllow=30):Teacher(dFixedWage,dPeriodAllow,sName,dClassHour){};

sName跟dClassHour互换一下位置

gengchl 2022-05-11
  • 打赏
  • 举报
回复
    AssociateProfessor(double dClassHour,string sName,double dFixedWage=3000,double dPeriodAllow=30):Teacher(dFixedWage,dPeriodAllow,sName,dClassHour){};

是不是因为这句?Teacher()的第三个参数之前都是dClassHour,在这里变成sName了。

m0_65570953 2022-05-11
  • 举报
回复
@gengchl 1&gt;c:\users\lenovo\desktop\one\one.cpp(22): error C2664: “Teacher::Teacher(double,std::string,double,double)”: 不能将参数 2 从“double”转换为“std::string”

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧