ysr123456yyy 2022-10-14 20:51 采纳率: 81.3%
浏览 30
已结题

类继承有限个数据成员,结果显示烫烫

题目要求

定义一个Teacher和Student类,二者有num,name,sex三个数据成员的相同的。编写程序将一个Student对象转换为Teacher类,只将这3个相同的数据成员移植过去。

用代码块功能插入代码,请勿粘贴截图
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include<string>
using namespace std;

class Student{
public:
    Student(int n, const char* nam, const char* s, int a) {
        num = n;
        strcpy(name, nam);
        strcpy(sex, s);    
        age=a;
    }
    int get_num() {
        return num;
    }
    char* get_name() {
        return name;
    }
    char* get_sex() {
        return sex;
    }
    void display() {
        cout << "Student's info:" << endl << "Num:" << num << endl << "Name:" << name << endl << "Sex:" << sex << endl << "Age:" << age << endl;
    }
private:
    int num;
    char* name;
    char* sex;
    int age;
};

class Teacher {
public:
    Teacher(){}
    Teacher(Student&);
    Teacher(int n,const char* nam,const char* s, int sa) {
    num = n;
    strcpy(name, nam);
    strcpy(sex, s);
    salary = sa;
    }
    void display();
private:
    int num;
    char* name;
    char* sex;
    int salary = 1000;
};

Teacher::Teacher(Student& s) {
    num = s.get_num();
    strcpy(name, s.get_name());
    strcpy(sex, s.get_sex());
}

void Teacher::display() {
    cout << "Teacher's info:" << endl << "Num:" << num << endl << "Name:" << name << endl << "Sex:" << sex << endl << "Salary:" << salary << endl;
}

int main() {
    Student s(123456, "Zhang", "female", 18);
    s.display();
    cout << endl;
    Teacher t = Teacher(s);
    t.display();
    return 0;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

name和sex的类型改为char*,运行结果为空

我想要达到的结果

正确显示name和sex

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-10-14 21:27
    关注

    Teacher::Teacher(Student& s) {
    num = s.get_num();
    name[10] = s.get_name();
    sex[7] = s.get_sex();
    }
    name和sex复制都是错的
    get_name和get_sex函数返回值改为char *
    然后改为 strcpy(name,s.get_name());和strcpy(sex,s.get_sex());

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月23日
  • 已采纳回答 10月15日
  • 修改了问题 10月15日
  • 修改了问题 10月15日
  • 展开全部

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里