In C The following function accepts objects by reference and

(In C++) The following function accepts objects by reference and indicates the result of the operation by storing a value in the variable pointed to by result. Implement the function using the classes defined in Question 1. /** * Determines the larger area between two Shape objects * The larger area is stored in result */ void largerArea(Shape &a, Shape &b, double *result); Your implementation belongs in a larger program, which produces the following output: This Triangle has a perimeter of: 12 and an area of: 6 This Circle has a perimeter of: 12.5664 and an area of: 12.5664 The larger area is: 12.5664 This Triangle has a perimeter of: 24 and an area of: 24 This Circle has a perimeter of: 12.5664 and an area of: 12.5664 The larger area is: 24 Note, largerArea() must not produce terminal output, the value must be passed to the caller through the result pointer variable.

Solution

I\'m not aware of the classes created in Question 1.
However I can define the functions that better suits the provided requirements.

I\'m assuming that there is a Shape class, Circle class and a Triangle class

PROGRAM:

#include <iostream>
using namespace std;

class Shape{
  
public:
   float area;
    float perimeter;
   Shape()
   {
       area = 0;
       perimeter = 0;
   }
   float getArea()
   {
       return area;
   }
   float getPerimeter()
   {
       return perimeter;
   }
};

class Triangle: public Shape{
public:
float side1, side2, base, height;
Triangle( float a=0, float b=0, float c=0, float d=0){
       side1 = a;
       side2 = b;
       base = c;
       height = d;
   }

float calcPerimeter()
{
   perimeter = side1 + side2 + base;
}
float calcArea()
{
   area = 0.5*base*height;
}
float display()
{
   cout<< \"This Triangle has a perimeter of: \"<<getPerimeter()<<\" and an area of: \"<<getArea()<<\"\ \";
}
};

class Circle: public Shape{
public:
float radius;
Circle( int a=0)
{
   radius = a;  
}
  
float calcPerimeter()
{
   perimeter = 2*3.14*radius;
}
float calcArea()
{
   area = 3.14*radius*radius;
}
float display()
{
   cout<< \"This circle has a perimeter of: \"<<getPerimeter()<<\" and an area of: \"<<getArea()<<\"\ \";
}
};

// The larger Area function
void largerArea(Shape &a, Shape &b, double *result)
{
   if(a.area > b.area)
   *result = a.area;
   else
   *result = b.area;
}

int main() {
   // Creating object for circle class
   Circle circle(3.1);
   circle.calcArea();
   circle.calcPerimeter();
   circle.display();
   //creating object for triangle class
   Triangle triangle(2,3,4,6);
   triangle.calcArea();
   triangle.calcPerimeter();
   triangle.display();
   double result = 0.0;
   //function call to larger Area
   largerArea(circle, triangle, &result);
   cout<<\"The larger area is: \"<<result;
   return 0;
}

OUTPUT:

This circle has a perimeter of: 18.84 and an area of: 28.26
This Triangle has a perimeter of: 9 and an area of: 12
The larger area is: 28.26

(In C++) The following function accepts objects by reference and indicates the result of the operation by storing a value in the variable pointed to by result.
(In C++) The following function accepts objects by reference and indicates the result of the operation by storing a value in the variable pointed to by result.

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site