Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

function name overloading is possible when you have different argument types, different number of arguments, or both In the program P33_2.cpp, we used two different

"function name overloading is possible when you have different argument types, different number
of arguments, or both"
In the program P33_2.cpp, we used two different function names to distinguish between the
function that computes the cross area and the one that computes the side area of a cylinder. Using
overloading we can give both functions the same name but ask them to do two different things.
The decision on which function to be chosen is made based on: 1) difference in the number of
arguments, 2) difference between types of parameters, and 3) based on the difference in number
and type of parameters (both 1 and 2). Here is the new version of the same program written using
overloading.
// P34_1.cpp This program illustrates the local and global variables and call-by-value.
// This program computes the side area and the cross section area of a cylinder
#include
#include
using namespace std;
const double PI = 3.14159; // This variable is defined globally, known to all functions in this
program as PI
const double conversion = 0.3937; // This is the Cm to inch conversion factor
double area(double r); // Function declaration for function that computes cross section area
double area(double r, double h); // Function declaration for function that computes side area
int main(void)
{
double h, r; //variables local to the main function
cout << "Enter the radius and the height of the cylinder in Cm ";
cin >> r >> h;
cout << endl;
cout << "Before I do any computation or call any function, I want to let you know that ";
cout << "you have entered r = " << r << " and h = " << h << "." << endl;
cout << "I am planning to use inch, thus in the first function, I will convert r, and " << endl;
cout << "in the second one I will convert h ";
cout << "The cross section area of the cylinder is " << area(r) <<" inch-sqr endl;
cout << "The side area of the cylinder is " << area(r,h) <<" inch-sqr ";
return 0;
}
double area(double r)
{
//Cross secion area includes the disks at the bottom and the top
r = r * conversion; // converting r to inch
return 2*PI*pow(r,2);
}
double area(double r, double h)
{
double area; //variable local to Side_area function
h = h * conversion; // converting h to inch
r = r * conversion; // converting r to inch
area = 2*PI*r*h;
return area;
}
Note that we were able to use name overloading because of the fact that to compute cross section
area, we only needed radius, r, as an argument and to compute the side area, we needed both the
radius and height of the cylinder. Thus, here we used the difference between number of
parameters to implement name overloading.
Exercise 3.8 (You can skip this)
Could we use overloading to compute the surface area and volume of a sphere? Explain your
answer. The surface area of a sphere is S = 4*PI*r2 and the volume is V = (4.0/3.0)*PI*r3
.
Exercise 3.9
Modify program P34_1.cpp to compute the side area, total area, and volume of a cylinder and the
area and volume of a sphere, depending on the choice that the user makes. Your program should
ask users to enter 1 to choose cylinder or 2 for sphere, and display an "invalid choice error" for
other values.
For a cylinder, we want to compute:
Side area: (2*PI*r) * h
Total Area: 2*(PI*r2
) + Side area
Volume: (PI*r2
)*h
For a sphere, we want to compute:
Surface area: 4*PI*r2
Volume: (4.0/3.0)*PI*r3
.
Use overloading whenever possible.
Call your new program Ex39.cpp.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Flash XML Applications Use AS2 And AS3 To Create Photo Galleries Menus And Databases

Authors: Joachim Schnier

1st Edition

0240809173, 978-0240809175

More Books

Students also viewed these Databases questions

Question

Define TRA, or total rewards package.

Answered: 1 week ago

Question

2. What potential barriers would you encourage Samuel to avoid?

Answered: 1 week ago