问题描述:C++职工管理系统中编写了一个Worker抽象类,其下有Manager、Employee和Boss派生类,对不同类分文件保存。测试录入职工数据时,代码编译及链接等过程无报错,在cmd命令行中输入一条信息“1 张三 1”,但输出文本中记录出错,文本中记录数据为-842150451 -842150451
开发平台:Win10+VS2022
问题分析:文本中保存的是两个随机数-842150451 -842150451,所以表明代码逻辑无问题,可能是代码中打错了某些地方,如i打成1这种,或者是因为派生类从抽象类那里已经继承了成员属性,再在派生类中声明,就是对这些属性重复声明,这样重复声明后没有赋值,就会产生随机数-842150451(自己思考的不知道对不对)。
问题解决方法:仔细检查代码,删去派生类头文件中重复声明的Worker抽象类成员属性
Worker.h
#pragma once
#include<iostream>
using namespace std;
#include<string>
//职工抽象基类
class Worker {
public:
//显示个人信息
virtual void showInfo() = 0;
//获取岗位名称
virtual string getDeptName() = 0;
//编号
int m_Id;//职工编号
string m_Name;//职工姓名
int m_DeptID;//职工所在部门名称编号
};
修改后派生类头文件&#