C++有关派生类的问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 07:50:41
定义平面直角坐标系上的一个点类,派生出描述一条直线的类,这个直线类应该怎样定义?如果要继承点类的那个点的话要怎样继承,因为派生类又不能访问基类私有数据成员。由一个点类或直线类又怎么派生出一个矩形类?(直线类中要求求出两点的距离,矩形类要求求出周长和面积)

基类里的数据成员要定义成protected,派生类的继承类型为public,在矩形类中添加数据成员length和width,计算周长和面积的成员函数,直接写成CalGirth(){return 2*(length+width);}he和CalArea(){return length*width;}成员函数的类型和参数我没写,你自己填吧
这是我以前写的,改改就是你要的
#include <iostream>
using namespace std;
class Shape{//虚基类
public:
virtual float area()const{return 0.0;}
virtual float volume()const{return 0.0;}
};
class Point:public Shape{
protected:
float X;
float Y;
public:
Point();
Point(float x,float y):X(x),Y(y){}
~Point();
void setPoint(float,float);
float getX()const{return X;};
float getY()const{return Y;};
};
Point::Point(){
X=0.0;
Y=0.0;
}
Point::~Point(){}
void Point::setPoint(float x,float y){
X=x;
Y=y;
}

class Cube:public Point{ //正方体
protected:
float length;
public:
Cube();
Cube(float x,float y,f