3、将定义直角坐标系上一个点的类作为基类,派生出描述一条直线的类(两点坐标确定一直线),再派生出三角 10
帮忙也个完整的程序,急需,谢谢了,呵呵 展开
程序如下:
#include <iostream>
#include<Cmath>
using namespace std;
const double PI = 3.1415926;
class Shape
{
public:
virtual void area( ) =0;
};
//圆
class circle:public Shape
{
double r;
public:
circle(double i):r(i){}
void area( )
{ cout << "圆的面积:" << r*r*PI << endl; }
};
class Retangle:public Shape
{
double a, b, s;
public:
Retangle(double x=0,double y=0)
{
a=x;
b=y;
}
void area( )
{
s = a*b;
cout << "长方形面积:" << s << endl;
}
};
class Triangle:public Shape
{
double a, b, s;
public:
Triangle(double i, double j):a(i), b(j){}
void area( )
{
s = (a*b)/2;
cout << "三角形面积:" << s << endl;
}
};
int main( )
{
double r, a, b, c, d;
cin >> r >> a >> b >> c >> d;
Shape *p;
circle c1(r);
p = &c1;
p -> area();
Retangle c2(a, b);
p = &c2;
p -> area();
Triangle c3(c, d);
p = &c3;
p -> area();
return 0;
}
扩展资料:
在面向对象设计中,被定义为包含所有实体共性的class类型,被称为“基类”。
继承性是面向对象程序设计的一个最重要的概念。继承性允许在构成软件系统的层次结构中利用已经存在的类并扩充它们,以支持新的功能。这使得编程者只需要在新类中定义已经存在的类中所没有的成分来建立新类,从而大大提高了软件的可重用性和可维护性。
对于客观世界中既有共性又有差别的两个类别以上的实体是不可能被抽象成一个class类型来描述的,编程者往往采用继承的方法。首先定义一个包含所有实体共性的class类型作为“基类”,然后,从该基类中继承所有信息,再添加新的信息,来构成新的类。
在构建新类的过程中,新建立的类被称为“子类”或者“派生类”;而被继承的包含相同特征的类称为“父类”或者“基类”。派生类继承了基类的全部成员,并且可以增加基类所没有的数据成员和成员函数,以满足描述新对象的需求。