使C++函数虚拟时出错

R. *_*vaw 1 c++

错误说明:
"错误:虚拟外部类定义"

有问题的Cpp成员:

virtual void Account::creditBalance(double plus)
{
   if(plus > 0)
      balance += plus;
   else
      cout << "Cannot credit negative.";
}

virtual void Account::debitBalance(double minus)
{
   if(minus <= balance)
      balance -= minus;
   else
      cout << "Debit amount exceeded account balance.";
}
Run Code Online (Sandbox Code Playgroud)

其余的代码在这里(虽然我不确定它是否必要):http://pastebin.com/de5e9f77

Jar*_*Par 13

只需从方法定义中删除虚拟.该virtual关键字仅在声明时是必需的.

例:

class Account {
public:
  virtual void creditBalance(double);
  virtual void debitBalance(double);
};

void Account::creditBalance(double plus)
{
   if(plus > 0)
      balance += plus;
   else
      cout << "Cannot credit negative.";
}

void Account::debitBalance(double minus)
{
   if(minus <= balance)
      balance -= minus;
   else
      cout << "Debit amount exceeded account balance.";
}
Run Code Online (Sandbox Code Playgroud)