Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++11 2. This problem requires implementing four functions. Given the following

ID: 3729810 • Letter: C

Question

C++11

2. This problem requires implementing four functions. Given the following class definition, non-member non-friend function, and explanation:

class Foo {

public:

Foo();

Foo(int x, int y);

int getLarge() const;

int getSmall() const;

Foo& operator ++();

const Foo operator++(int);

friend const Foo operator +(const Foo &lhs, const Foo &rhs);

private: int large; int small; };

const Foo operator -(const Foo &lhs, const Foo &rhs);

Notes on how the class behaves:

• The variable large must always hold the highest value int

• Increment will always only increment the smaller number

• Addition adds the two large integers together, then the small integers

• Subtraction behaves similarly to addition, the large numbers are paired together, as are the small numbers Implement the four operator overloads.

Explanation / Answer

#include <iostream>
using namespace std;

class Foo
{
public:
Foo(){    // default constructor
large = 0;
small = 0;
}
Foo(int x,int y)//argument constructor
{
large = x;
small = y;
}
//get methods
int getLarge() const
{
return large;
}
int getSmall() const
{
return small;
}
Foo& operator++() // overloading preincrement
{
Foo temp;
temp.small = ++this->small; // only increment smaller number
return temp;


}
const Foo operator++(int) // overloading postincrement
{
Foo temp;
temp.small = this->small++; //only increment smaller number
return temp;
}
friend const Foo operator +(const Foo &lhs,const Foo &rhs); // friend function
private:
int large;
int small;

};

//overloading + and - operators
const Foo operator-(const Foo &lhs,const Foo &rhs)
{
int l= lhs.getLarge() - rhs.getLarge();
int s = lhs.getSmall() - rhs.getSmall();
Foo temp(l,s);
return temp;
}

const Foo operator +(const Foo &lhs,const Foo &rhs)
{
Foo temp;
temp.large = lhs.large + rhs.large; // friend function can access private data
temp.small = lhs.small + rhs.small;
return temp;
}
int main() {

Foo f(45,21);

cout<<"f : large "<<f.getLarge()<<" small "<<f.getSmall();

cout<<" Incrementing f:";
++f;

cout<<" f : large "<<f.getLarge()<<" small "<<f.getSmall();

Foo f1(21,19);
cout<<" f1 : large "<<f1.getLarge()<<" small "<<f1.getSmall();

cout<<" Incrementing f1:";
f1++;

cout<<" f1 : large "<<f1.getLarge()<<" small "<<f1.getSmall();

Foo f2;

cout<<" Difference of f and f1 : ";
cout<<" f - f1 : ";

f2 = f-f1;
cout<<" f2 : large "<<f2.getLarge()<<" small "<<f2.getSmall();

cout<<" Sum of f and f1 : ";
cout<<" f + f1 : ";

f2 = f+f1;
cout<<" f2 : large "<<f2.getLarge()<<" small "<<f2.getSmall();
return 0;
}

output:

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote