Using MSVC++ 6.0; this program compiles but will not build. Is it simply a compiler error, or is there something wrong with the code?
If someone could post a snippet of the results, I'd appreciate it.
Code:
#include <iostream>
#include <iomanip>
using namespace std;
class Point3
{
public:
Point3( int = 0, int = 0 ); // default constructor
void setX( int ); // set x in coordinate pair
int getX() const; // return x from coordinate pair; getX is not a member of cylinder
void setY( int ); // set y in coordinate pair
int getY() const; // return y from coordinate pair
void print() const; // output Point3 object
private:
int x; // x part of coordinate pair
int y; // y part of coordinate pair
}; // end class Point3
class Circle4
{
public:
// default constructor
Circle4( int = 0, int = 0, double = 0.0 );
void setRadius( double ); // set Radius
double getRadius() const; // return Radius
void setCenter( int, int ); // set center of circle to pass x,y values
double getDiameter() const; // return diameter
double getCircumference() const; // return circumference
double getArea() const;
void print() const; // output Circle4 object
private:
double radius; // Circle4's radius
Point3 point; // Point3 object - COMPOSITION
}; // end class Circle4
class Cylinder
{
public:
// default constructor
Cylinder( int = 0, int = 0, double = 0.0, double = 0.0 );
void setHeight( double ); // set Cylinder's height
double getHeight() const; // return Cylinder's height
double getArea() const; // return Cylinder's area
double getVolume() const; // return Cylinder's volume
void print() const; // output Cylinder
void setX( int ); // set x in coordinate pair
int getX() const; // return x from coordinate pair; getX is not a member of cylinder
int getY() const; // return y from coordinate pair; getY is not a member of cylinder
void setY( int ); // set y in coordinate pair
void setRadius( double ); // set Radius
double getRadius() const; // return Radius
double getDiameter() const; // return diameter
double getCircumference() const; // return circumference
private:
double height; // Cylinder's height
Circle4 circle; // Circle4 object - COMPOSITION
}; // end class Cylinder
Point3::Point3( int xValue, int yValue )
: x( xValue ), y( yValue )
{
// empty body
} // end Point3 constructor
// set x in coordinate pair
void Point3::setX( int xValue )
{
x = xValue; // used for validation
} // end function setX
// return x from coordinate pair
int Point3::getX() const
{
return x;
} // end function getX
// set y in coordinate pair
void Point3::setY( int yValue )
{
y = yValue; // no need for validation
} // end function setY
// return y from coordinate pair
int Point3::getY() const
{
return y;
} // end function getY
// output Point3 object
void Point3::print() const
{
cout << '[' << getX() << ", " << getY() << ']';
} // end function print
// default constructor
Circle4::Circle4( int xValue, int yValue, double radiusValue )
: radius( radiusValue )
{
point.setX( xValue );
point.setY( yValue );
setRadius( radiusValue );
} // end Circle4 constructor
// set radius
void Circle4::setRadius( double radiusValue )
{
radius = ( radiusValue < 0.0 ? 0.0 : radiusValue );
} // end function setRadius
// return radius
double Circle4::getRadius() const
{
return radius;
} // end function getRadius
// calculate and return diameter
double Circle4::getDiameter() const
{
return 2 * getRadius();
} // end function getDiameter
// calculate and return circumference
double Circle4::getCircumference() const
{
return 3.14159 * getRadius() * getRadius();
} // end function getCircumference
// calculate and return area
double Circle4::getArea() const
{
return 3.14159 * getRadius() * getRadius();
} // end function getArea
void Circle4::setCenter( int x, int y )
{
point.setX( x );
point.setY( y );
}
// output Circle4 object
void Circle4::print() const
{
cout << "Center = ";
point.print(); // invoke Point3's print function
cout << "; Radius = " << getRadius();
} // end function print
// default constructor
Cylinder::Cylinder( int xValue, int yValue, double radiusValue, double heightValue )
: height( heightValue )
{
circle.setCenter( xValue, yValue );
setHeight( heightValue );
circle.setRadius( radiusValue );
} // end function setHeight
// get Cylinder's height
double Cylinder::getHeight() const
{
return height;
} // end function getHeight
// redefine Circle4 fucntion getArea to calculate Cylinder area
double Cylinder::getArea() const
{
return 2 * circle.getArea() * getCircumference() * getHeight();
} // end function getArea
// calculate Cylinder volume
double Cylinder::getVolume() const
{
return circle.getArea() * getHeight();
} // end function getVolume
void Cylinder::print() const
{
circle.print();
cout << "; Height = " << getHeight();
} // end function print
int main()
{
// instantiate Cylinder object
Cylinder cylinder( 12, 23, 2.5, 5.7 );
// display point coordinates
cout << "X coordinate is " << cylinder.getX()
<< "\nY coordinate is " << cylinder.getY()
<< "\nRadius is " << cylinder. getRadius()
<< "\nHeight is " << cylinder.getHeight();
cylinder.setX( 2 ); // set new x-coordinate
cylinder.setY( 2 ); // set new y-coordinate
cylinder.setRadius( 4.25 ); // set new radius
cylinder.setHeight( 20 ); // set new height
// display new cylinder value
cout << "\n\nThe new location and radius of circle are\n";
cylinder.print();
// display floating point values wtih 2 digits of precision
cout << fixed << setprecision( 2 );
// display cylinder's diameter
cout << "\n\nDiameter is " << cylinder.getDiameter();
// display cylinder's circumference
cout << "\nCircumference is "
<< cylinder.getCircumference();
// display cylinder's area
cout << "\nArea is " << cylinder.getArea();
// display cylinder's volume
cout << "\nVolume is " << cylinder.getVolume();
cout << endl;
return 0;
} // end main