帮我看一个C++程序,为什么老是内存不能written

来源:百度知道 编辑:UC知道 时间:2024/05/09 07:39:02
//定期存款是储蓄的一种,假设定期分一年期,三年期,五年期,,利率分别
//为5%,8%he 10%.用户在办理定期存款帐户时,必须确定其定期时段,
//中途不再在同一账号上办理存款业务。存款是一次性完成,若提前取
//款,则全部的利息按活期利率1%计算。试将其银行业务设计成定期类。#include<iostream>
using namespace std;
int data;int saving;
class Savings
{
public:virtual void GetMoney()
{cout<<"getmoney!";}
};

class FixedDeposit:public Savings
{};

class OneYear:public FixedDeposit
{public:
void GetMoney()
{double a=0.05;
cout<<"%d"<<a*saving;
}
};

class ThreeYear:public FixedDeposit
{public:
void GetMoney()
{ double a=0.08;
cout<<"%d"<<a*saving;
}
};

class FiveYear:public FixedDeposit
{public:
void GetMoney()
{double a=0.10;
cout<<"%d"<<a*saving;
}
};

class Extra:public FixedDeposit
{public:
void GetMoney()

int data;int saving;
应该为
int *data;
int *saving;
C++中内存分配最好用new,如:
saving = new int;

释放为:
delete saving;
修改为:
int main()
{OneYear m;ThreeYear n;FiveYear o;Extra p;int data;
saving=new int;
cout<<"Please enter the saving:"<<endl;
cin>>saving;
data=new int;
cout<<"Please enter the data:"<<endl;
cin>>data;
if(data=1)
m.GetMoney();
if(data=3)
n.GetMoney();
if(data=5)
o.GetMoney();
else if(data>0)
p.GetMoney();
return 0;
}