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

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

题目要求

定义一个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 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题