Learn how to a build a cloud-first strategyRegister Now


operator+ question in C++

Posted on 2009-05-03
Medium Priority
Last Modified: 2012-08-14

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;


Question by:akohan
LVL 86

Expert Comment

ID: 24292055
>>What is wrong with the following code?

The important part is missing ;o)

Author Comment

ID: 24292323

missing ?!
LVL 11

Expert Comment

by:Deepu Abraham
ID: 24292491
Could you please show your class PiggyBank and its function implementation?
Best Regards,
Deepu Abraham K
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Author Comment

ID: 24292714



#include <iostream>
using namespace std;

class PiggyBank {
      PiggyBank( );

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

      void feedCoins( int quarters, int dimes, int nickels, int pennies );
      int  breakOpen( );
      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


LVL 11

Expert Comment

by:Deepu Abraham
ID: 24292801
You need to implement few functions:
copy constructor
+ operator overloading

LVL 11

Expert Comment

by:Deepu Abraham
ID: 24292802
- operator overloading aswell
LVL 11

Assisted Solution

by:Deepu Abraham
Deepu Abraham earned 200 total points
ID: 24292834
LVL 53

Expert Comment

ID: 24293382
>> 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 ?
LVL 39

Accepted Solution

itsmeandnobodyelse earned 300 total points
ID: 24298268
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.

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Unlike C#, C++ doesn't have native support for sealing classes (so they cannot be sub-classed). At the cost of a virtual base class pointer it is possible to implement a pseudo sealing mechanism The trick is to virtually inherit from a base class…
IntroductionThis article is the second in a three part article series on the Visual Studio 2008 Debugger.  It provides tips in setting and using breakpoints. If not familiar with this debugger, you can find a basic introduction in the EE article loc…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question