• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 539
  • Last Modified:

operator+ question in C++


hello group,

What is wrong with the following code?

The program is not working after this line:
 
 PiggyBank Combined = bank1 + bank2;



PiggyBank bank1;
PiggyBank bank2;
bank1.setSize( 20 );
bank1.feedCoins( 10, 1, 0, 1 );
bank2.setSize( 20 );
bank2.feedCoins( 10, 0, 0, 0 );
PiggyBank combined = bank1 + bank2;
cout << "combined's value is: " << combined.getValue( ) / 100 << "." <<
     combined.getValue( ) % 100 << endl;

PiggyBank other = combined - bank1;
cout << "other's value is: " << other.getValue( ) / 100 << "." <<
     other.getValue( ) % 100 << endl;
if (combined > other) {
  cout << "looks like combined is bigger..." << endl;
}
else {
  cout << "looks like other is bigger..." << endl;
}

if (bank1 > other) {
  cout << "looks like bank1 is bigger..." << endl;
}
else {
  cout << "looks like other is bigger..." << endl;
}
if (bank2 < bank1) {
  cout << "looks like bank2 is smaller..." << endl;
}
else {
  cout << "looks like bank1 is smaller..." << endl;
}
 

 
Thanks.

0
akohan
Asked:
akohan
2 Solutions
 
jkrCommented:
>>What is wrong with the following code?

The important part is missing ;o)
0
 
akohanAuthor Commented:

missing ?!
0
 
Deepu AbrahamR & D Engineering ManagerCommented:
Could you please show your class PiggyBank and its function implementation?
Best Regards,
Deepu Abraham K
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
akohanAuthor Commented:

Sure,

#ifndef PIGGYBANK_H
#define PIGGYBANK_H

#include <iostream>
using namespace std;

class PiggyBank {
public:
      PiggyBank( );

      int  getValue( );
      void setSize( int size );
      int  getSize( );
      int  getCoins( );

      void feedCoins( int quarters, int dimes, int nickels, int pennies );
      int  breakOpen( );
private:
      int  myValue;           // the monetary value of this piggybank, in pennies
      int  myNumberOfCoins;   // the actual number of coins in this bank
      int  mySize;            // the most coins this bank can possibly hold
};

#endif

0
 
Deepu AbrahamR & D Engineering ManagerCommented:
You need to implement few functions:
copy constructor
+ operator overloading

0
 
Deepu AbrahamR & D Engineering ManagerCommented:
- operator overloading aswell
0
 
Infinity08Commented:
>> The program is not working after this line:

How is it not working ? What do you see, and what did you expect ?

Could you post all of the code ?
0
 
itsmeandnobodyelseCommented:
You would need to add something like

  friend PiggyBank operator+(const PiggyBank& pb1, const PiggyBank& pb2)
  {
      PiggyBank pb;
 
      ...
      return pb;
  }

to your class definition.

The ... should be replaced by code where you assign the members myValue, mySize, ... of pb with appropriate values computed from the input objects.

>>> You need to implement few functions:
>>> copy constructor
Copy constructor wasn't needed as the compiler will create one for you which simply makes a copy of the three int members what is good so.
0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now