结束本章(继承)学习的一个小程序

今天敲的比较长的一个项目就书上的Employee

计算员工薪资的,算是类继承的一个实例

后来在一个text函数里输入的时候出现了一点问题

用基类定义的指针去调用派生类函数的时候忽然说出错了

void test1()
{
cout<<setiosflags(ios::fixed|ios::showpoint)<<setprecision(2);
Manager m1(1035,"xiaoting",1200);
Manager m2(1020,"pengpeng");
m2.setMonthlySalary(390000);

Employee *basePtr; //使用抽象类指针,调用派生类版本的函数
basePtr=&m1;
basePtr->print();
basePtr=&m2;
basePtr->print();
}

错误提示是说“不能把manager类型的值分配到Employee类型的实体”

回去两个定义类的头文件查了一下,没有忘记继承

Employee类和manager类是分别放在两个头文件里的,我试着把这两个类都放在主文件里面,错误就消失了

这样看来问题不在代码上。应该是调用类的时候出错了

我只是一个菜鸟,能最快想到的也就是文件用中文名导致出错

果断把“头文件”改成了“head”,把“源文件”改成了“cpp”,结果是。。。。木有用!红色波浪又出来了

不死心,于是又用了个跟上面那个有同工异曲之妙的方法。。把两个头文件放到源文件的文件夹里。。还是木有用!

那就只能追本溯源地去找问题了,首先是employee的cpp文件,组建过程中出现了很多错误,但是众所周知很多时候一大堆错误都只是由一个错误引出来的

所以我直接瞄准第一个,说employee的class重定义了

好吧,我多手给每个用来定义派生类的头文件都加上了#include"Employee.h"。。难怪重定义了

删掉之后再给employee.cpp组建一次,成功了~~~~~~~~~~~~~~~

再回去main.cpp里面看。。~红色波浪消失了!!!!



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值