以point类和Rectangle类为例,继承与派生
#include <iostream>
using namespace std;
class point
{
public:
void initpoint(float x = 0, float y = 0)
{
this->x = x;
this->y = y;
}
void move(float offX, float offY)
{
x += offX;
y += offY;
}
float getX() const
{
return x;
}
float getY() const
{
return y;
}
private:
float x, y;
};
class rectangle : public point { //派生类定义部分
public: //新增公有函数成员
void initrectangle(float x, float y, float w, float h) {
initpoint(x, y); //调用基类公有成员函数
this->w = w;
this->h = h;
}
float getH() const { return h; }//常成员函数,不能改变成员变量值
float getW() const { return w; }
private: //新增私有数据成员
float w, h;
};
int main() {
rectangle rect; //定义Rectangle类的对象
//设置矩形的数据
rect.initrectangle(2, 3, 20, 10);
rect.move(3, 2); //移动矩形位置
cout << "The data of rect(x,y,w,h): " << endl;
//输出矩形的特征参数
cout << rect.getX() << ", "
<< rect.getY() << ", "
<< rect.getW() << ", "
<< rect.getH() << endl;
return 0;
}