高数不挂科 2021-05-22 18:26 采纳率: 100%
浏览 65
已采纳

大一C++程序报错,求助大佬!

新学的继承于派生章节,要做实验练习题,结果写是写出来了,就是VS报了两个错,能不能请各位大佬帮我看看是哪出的错,或者帮我敲一个能运行的,我读读代码,学习学习。谢谢各位大佬了!

原题如下,我写的代码在下方

2、分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求:

① 在两个基类中都包含姓名、出生日期(日期类Date的子对象)、性别、地址、电话等数据成员。

② 在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务), 在Teacher_Cadre类中还包含数据成员wages(工资)。

③ 对两个基类中的姓名、出生日期、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。

④ 在类体中声明成员函数,在类外定义成员函数。

⑤ 在派生类Teacher_Cadre的成员函数show()中调用Teacher类中的display()函数,输出姓名、出生日期、性别、职称、地址、电话,然后再用cout语句输出职务与工资。

2、分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求:

① 在两个基类中都包含姓名、出生日期(日期类Date的子对象)、性别、地址、电话等数据成员。

② 在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务), 在Teacher_Cadre类中还包含数据成员wages(工资)。

③ 对两个基类中的姓名、出生日期、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。

④ 在类体中声明成员函数,在类外定义成员函数。

⑤ 在派生类Teacher_Cadre的成员函数show()中调用Teacher类中的display()函数,输出姓名、出生日期、性别、职称、地址、电话,然后再用cout语句输出职务与工资。

 

#include <iostream>
#include <string>
using namespace std;

class Date
{protected:
    int year, month, day;
public:
    Date(int y, int m, int d)
    {
        year = y;
        month = m;
        day = d;
    }
    void print()
    {
        cout << year << "年" << month << "月" << day << "日" << endl;
    }
};

class Teacher
{protected:
    string name;
    Date date;
    string sex;
    string address;
    long int phone_number;
    string title;
public:
    Teacher(string n, int y, int m, int d, string s, string a, long int p, string t) :name(n),sex(s),address(a),phone_number(p),title(t),date(y, m, d) {};
    void display1()
    {
        cout << "姓名:" << name << endl;
        date.print();
        cout << "性别:" << sex << endl << "地址:" << address << endl << "电话号码" << phone_number << endl << "职称:" << title << endl;
    }
};

class Cadre
{protected:
    string name;
    Date date;
    string sex;
    string address;
    long int phone_number;
    string post;
public:
    Cadre(string n, int y, int m, int d, string s, string a, long int p, string po) :name(n), sex(s), address(a), phone_number(p), post(po), date(y, m, d) {};
    void display()
    {
        cout << "姓名:" << name << endl;
        date.print();
        cout << "性别:" << sex << endl << "地址:" << address << endl << "电话号码" << phone_number << endl << "职务:" << post << endl;
    }
};

class Teacher_Cadre :public Teacher, virtual public Cadre
{
private:
    long int wages;
public:
    Teacher_Cadre(string n, int y, int m, int d, string s, string a, long int p, string t, string po, long int wage) :Teacher(n, y, m, d, s, a, p, t), Cadre(n, y, m, d, s, a, p, po), wages(wage)
    { wages = wage; }
    void display()
    {
        display1();
        cout << "职务:" << post << endl;
        cout << "工资:" << wages << endl;
    }
};

int main()
{
    Teacher_Cadre a("ZhangSan",2020,9,1,"man","BeiJing",10086,"professor","president","15000");
    a.display();
    return 0;
}

  • 写回答

5条回答 默认 最新

  • CSDN专家-Time 2021-05-22 18:31
    关注

     代码74行 改为:

        Teacher_Cadre a("ZhangSan", 2020, 9, 1, "man", "BeiJing", 10086, "professor", "president", 15000);

    你构造函数写的 是 long类型,结果你传递const char[6] 参数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境