|
|
|
Circle Class - Version 2
ostream& in showdata(),
accessor and mutator functions, and separate compilation.
Definition Part
% cat circle.h
#ifndef CIRCLE_H
#define CIRCLE_H
// Circle class definition - file circle.h
class Circle
{
public:
Circle();
// default constructor
Circle(int x, int y, double r); // constructor
void showdata(ostream&
out);
double
get_radius();
// accessor
void set_radius( double r ); //
mutator
private:
int xcenter;
int ycenter;
double radius;
};
#endif // CIRCLE_H
Implementation Part
% cat circle.cpp
#include <iostream>
#include <iomanip>
using namespace std;
#include "circle.h" // header file
// default constructor
Circle::Circle(): xcenter(0), ycenter(0),
radius(1.0)
{
// empty body when initialization
// section is used
}
// constructer with parameters for initialization
Circle::Circle(int x, int y, double r): xcenter(x),
ycenter(y),radius(r)
{
// empty body when initialization
// section is used
}
void Circle::showdata( ostream& out
)
{
out << setiosflags(ios::fixed
| ios::showpoint ) << setprecision(2);
out << "The circle is centered
at (" << xcenter << ", "
<< ycenter << ")" <<
endl;
out << "Radius = " <<
radius << endl;
return;
}
// accessor function
double Circle::get_radius()
{
return radius;
}
// mutator function
void Circle::set_radius(double r)
{
if( r < 0.0 )
{
cout << "The radius cannot be less than zero." <<
endl;
exit(1);
}
else
radius = r;
}
Driver Program
% cat circ2.cpp
// driver program for Circle class example
#include<iostream>
using namespace std;
#include<fstream>
#include "circle.h" // header file
int main()
{
ofstream file_out;
file_out.open( "circle_data" );
double new_radius;
// declare Circle object a
Circle a(3, 4, 4.0);
a.showdata( cout ); // display
on screen
a.showdata( file_out ); // write to a file
// call member functions
cout << "\n*** Call the accessor function" << endl;
cout << "The radius is " << a.get_radius() <<
endl;
// get a new radius
cout << "\n*** Use the mutator function" << endl;
cout << "Enter a new radius: ";
cin >> new_radius;
a.set_radius( new_radius );
cout << "The new radius is " << a.get_radius() <<
endl;
a.showdata( cout );
return 0;
}
Compile and Execute
% g++ circ2.cpp circle.cpp
% a.out
The circle is centered at (3, 4)
Radius = 4.00
*** Call the accessor function
The radius is 4.00
*** Use the mutator function
Enter a new radius: 9.5
The new radius is 9.50
The circle is centered at (3, 4)
Radius = 9.50
|
|