C++职工管理系统——写文件时文本中录入信息为-842150451 -842150451

问题描述: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;//职工所在部门名称编号
};

修改后派生类头文件&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值