多态virtual问题
基类Account中一个virtual函数
double Account::credit(double a)
{
return (balance += a);//balance是数据成员
}
子类重新定义
double checkingAccount::credit(double a)
{
return ( Account::credit(a) - cost);
}
在main函数中 给Account对象中的balance赋值1000,子类的balance赋值2000
然后当调用到子类的credit的时候 为什么Account::credit(a)这个函数的balance初始值是2000 而不是1000?
然后执行完(balance += a)这个语句之后 基类的balance还是1000么 ?
还有 当我的子类重写credit的时候 我没有给他参数 编译器没有报错 但是如果我给他改个返回类型的话 就会报错 为什么?
[解决办法]
子类和基类中的数据并不是一个数据,这是概念问题,
还有,执行完+=如果是全局变量,其值是会发生改变的。
继承是通过虚表指针只想相应的函数地址,从而调用相应
函数完成的。
[解决办法]
楼主把完整的代码贴出来吧。
这个问题是一个基础问题,必须要搞清楚。
[解决办法]
楼主 说什么啊, 没看懂