开发者

Error making C++ functions virtual

The error states:

"error: virtual outside class definition"

Cpp members in question:

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

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

The rest of the code is here (although I'm not sure it's necessary): http://pastebin.com/de5e9f77


Simply strip the virtual off of the method definition. The virtual keyword is only necessary at the declaration.

Example:

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.";
}


You only need to use the virtual keyword inside the class declaration, i.e. in the header file. So change your cpp file to something like:

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.";
}


Use the virtual keyword only in decleration (in header files, within class definition) and not in implementation (.cc files usually)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜