早教吧 育儿知识 作业答案 考试题库 百科 知识分享

#ifndefACCOUNTH#defineACCOUNTH#include"date.h"#includeclassSavingAccount{priv#ifndefACCOUNTH#defineACCOUNTH#include"date.h"#includeclassSavingAccount{private:\x05std::stringid;\x05doublebalance;\x05doublerate;\x05DatelastD

题目详情
#ifndef _ACCOUNT_H_ #define _ACCOUNT_H_ #include"date.h" #include class SavingAccount { priv
#ifndef _ACCOUNT_H_
#define _ACCOUNT_H_
#include"date.h"
#include
class SavingAccount
{
private:
\x05std::string id;
\x05double balance;
\x05double rate;
\x05Date lastDate;
\x05double accumulation;
\x05static double total;
\x05void record(const Date &date,double amount,const std::string &desc );
\x05void error(const std::string &msg)const;
\x05double accumulate(const Date &date)const
\x05{
\x05\x05return accumulation+balance*date.distance(lastDate);
\x05}
public:
\x05SavingAccount(const Date &date,const std::string &id,double rate);
\x05const std::string &getId()const
\x05{
\x05\x05return id;
\x05}
\x05double getBalance()const
\x05{
\x05\x05return balance;
\x05}
\x05double getTotal()const
\x05{
\x05\x05return total;
\x05}
\x05void deposit(const Date &date,double amount,const std::string &desc);
\x05void withdraw(const Date &date,double amount,const std::string &desc);
\x05void settle(const Date &date);
\x05void show() const;
}
#endif
:\program files\microsoft visual studio\vc98\include\iostream(14) :error C2143:syntax error :missing ';' before 'namespace'
d:\f\e.cpp(8) :warning C4508:'main' :function should return a value; 'void' return type assumed
account.cpp
c:\program files\microsoft visual studio\vc98\include\iostream(14) :error C2143:syntax error :missing ';' before 'namespace'
d:\f\account.cpp(8) :error C2512:'Date' :no appropriate default constructor available
d:\f\account.cpp(39) :error C2662:'distance' :cannot convert 'this' pointer from 'const class Date' to 'class Date &'
Conversion loses qualifiers
▼优质解答
答案和解析
你的代码并不全,以至于错误信息中提到了main,但是你并未给出.同样没有给出的还包括date类
但是就这些错误而言,主要有以下:
1. SavingAccount 类最后大括号后面少分号
2. 申明了 Date lastDate; 但是Date类没有默认构造函数
3. 在accumulate函数中用到了distance函数,参数为lastDate,但是由于accumulate函数是const的,所以lastDate作为引用传给distance将不能修改,而你的distance函数显然没有申明为接受const Date & 作为参数
看了 #ifndefACCOUNT...的网友还看了以下: