|
ex7-5.cpp - Example 7-5 Inheritance - triangle classes |
// File: ex7-5.cpp
#include <iostream>
#include <cmath>
using namespace std;
class triangle
{
protected:
double a,b,c;
public:
triangle(double s1,double s2,double s3) : a(s1), b(s2), c(s3) {}
void show() { cout << "triangle " << this << " sides " <<
a << ' ' << b << ' ' << c << endl; }
void area(void);
};
void triangle::area(void)
{
double s = (a + b + c)/2.0; // s = semiperimater
cout << " area of " << this << " = "
<< (sqrt(s*(s-a)*(s-b)*(s-c))) << endl << endl;
return;
}
class isosceles : public triangle
{
public:
isosceles(double base, double leg) : triangle(base,leg,leg) {}
};
class equilateral : public isosceles
{
public:
equilateral(double side) : isosceles(side,side) {}
};
int main(void)
{
triangle t1(3,4,5);
t1.show();
t1.area();
isosceles t2(2,4);
t2.show();
t2.area();
equilateral t3(5);
t3.show();
t3.area();
return 0;
}
CIS27: Programming in C++ Instructor: Joe Bentley