【问题标题】:Error expected primary expression before ' - ' token' - ' 标记之前的预期主表达式错误
【发布时间】:2016-02-20 20:45:42
【问题描述】:

所以我在此有一个名为 Money 的结构,这里是该结构的代码:

class Money{
  private:
    unsigned int numDollars;    // number of dollars
    unsigned int numQuarters;   // number of quarters (25 cents)
    unsigned int numDimes;      // number of dimes (10 cents)
    unsigned int numNickels;    // number of nickels (5 cents)
    unsigned int numPennies;    // number of pennies (1 cents)

  public:
 // constructors for the class
 // Exercise 1 is to implement these
     Money();
     Money(unsigned int dollars, unsigned int cents);
     Money(unsigned int dd, unsigned int q, unsigned int d, unsigned int n, unsigned int p);

 // getter functions
 // these are provided for you
     unsigned int getDollars();
     unsigned int getQuarters();
     unsigned int getDimes();
     unsigned int getNickels();
     unsigned int getPennies();

 // you need to implement this getter in Exercise 2
     unsigned int getCents();

 // setter functions
 // you need to implement each of these in Exercise 2
     void addMoney(Money);
     void addDollars(unsigned int);
     void addQuarters(unsigned int);
     void addDimes(unsigned int);
     void addNickels(unsigned int);
     void addPennies(unsigned int);
     void addCents(unsigned int);

 // other methods for Exercise 3
 void leastCoins();               // Exercise 3
 unsigned int numberOfCoins();    // Exercise 3

};

所以给我错误的代码是在我定义我的void addMoney() 函数时。它应该像这样工作:如果我说m1.addMoney(m2)m1 应该是 += m2,而 m2 保持不变。 我正在尝试简单地将硬币从 m2 添加到 m1

void Money::addMoney(Money)
{
    Money::addDollars(Money.getDollars);
    Money::addQuarters(Money.getQuarters());
    Money::addDimes(Money.getDimes());
    Money::addNickels(Money.getNickels());
    Money::addPennies(Money.getPennies());
}

这里的所有行都会引发该错误。

【问题讨论】:

  • 您能否将收到的错误消息添加到帖子中?

标签: c++ function class struct


【解决方案1】:

你的函数看起来像这样

void Money::addMoney(Money const& other)
{
    addDollars(other.getDollars());
    addQuarters(other.getQuarters());
    addDimes(other.getDimes());
    addNickels(other.getNickels());
    addPennies(other.getPennies());
}

您实际上是从this 隐式调用您的每个方法,这是指向您的Money 的当前实例的指针。然后你可以从other 中调用get_,这是作为参数传入的另一个Money

【讨论】:

    猜你喜欢
    • 2013-01-13
    • 2017-09-24
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多