由抽象类继承而来的派生类的构造函数的问题,请看代码
我这个代码总是有一个错误,就是实例化派生类对象的时候,不知道派生类的对象是怎么调用基类的构造函数的,是什么顺序,反正就是派生类是如何构造的地方有点不太清楚,请各位指点以下。
#define max 100000
#include <iostream.h>
#include "Card.cpp"
class ATM //定义一个自动取款机的抽象类
{
protected:
Card myCard; //Card类的对象作为私有数据成员
float totalmoney; //取款机总钱数
public:
ATM(Card& card) : myCard(card)
{
totalmoney = max;
}
virtual bool Fetchmoney(float money) = 0;
virtual ~ATM()
{
}
};
class IndustryATM: public ATM //派生一个工商银行的类
{
bool Fetchmoney(float money)
{
if(myCard.GetCardType() == industry)
{
totalmoney = totalmoney - money;
if(myCard.ChangeMoney(money))
return true;
}
else
{
cout<<"非农业银行卡,需缴纳1%的手续费!"<<endl;
totalmoney = totalmoney - money;
money = money + money * 0.01;
if(myCard.ChangeMoney(money))
return true;
}
}
};
int main()
{
Card card("123",500,China); //实例化一个中国银行的卡密码123,现金500
IndustryATM myATM(card);//就是这里的问题老出现一个错误,不知到是怎么个构造顺序
return 1;
}