注册 登录
编程论坛 C++教室

怎么侬都看不出那边有错,这个cpp文件到底怎么改?

gaojiannew 发布于 2013-09-20 14:04, 557 次点击
h文件是
#ifndef saving
#define saving
#include"account.h"
class Savings:public Account
{
public:
    Savings(unsigned accNo,float balan=0.0);
    virtual void Withdrawal(float amount);
protected:
    static float minbalance;
};
#endif
cpp文件是#include
#include<iostream.h>
#include"account.h"
#include"saving.h"
static Savings::minbalance=500.0;
Savings::Savings(unsigned accNo,float balan=0.0):Account(accNo,balan){}
virtual void Saving::Withdrawal(float amount)
{
    if(balance+minbalance<amount)
        cout<<"You have no enough money!";
    else
        balance-=amount;
}
编译的时候 错误是:
C:\Program Files\Microsoft Visual Studio\MyProjects\ch16_2\savings.cpp(4) : error C2720: 'minbalance' : 'static ' storage-class specifier illegal on members
Error executing cl.exe.
去掉cpp文件中static又有如下错误:
C:\Program Files\Microsoft Visual Studio\MyProjects\ch16_2\savings.cpp(4) : error C2501: 'minbalance' : missing storage-class or type specifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\ch16_2\savings.cpp(4) : error C2371: 'protected: static float Savings::minbalance' : redefinition; different basic types
        c:\program files\microsoft visual studio\myprojects\ch16_2\savings.h(10) : see declaration of 'protected: static float Savings::minbalance'
Error executing cl.exe.


[ 本帖最后由 gaojiannew 于 2013-9-20 14:06 编辑 ]
4 回复
#2
peach54602013-09-20 18:48
static书上是怎么说的?
#3
yuccn2013-09-21 13:38
static Savings::minbalance=500.0;
改成
float Savings::minbalance=500.0;
试试
#4
blueskiner2013-09-21 18:43
侬咋看都错。。。
static Savings::minbalance=500.0;
改成3楼给出的答案就可以了。
#5
toofunny2013-09-27 22:09
跟你说说为什么错吧。
定义一个变量的格式是什么?
[存储类型] 变量类型 变量名 = 变量值;
你那句static Savings::minbalance=500.0;包含了几个要素?
static 是存储类型,变量类型在哪里呢?float
所以 float Savings::minbalance=500.0;才是正确的。
1