您的位置:首页 > 编程语言 > C语言/C++

c++中的继承关系

2021-07-19 09:27 501 查看

1 什么是继承

  面向对象的继承关系指类之间的父子关系。用类图表示如下:

     

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

class Object
{
protected:
string mName;
string mInfo;
public:
Object()
{
mName = "Object";
mInfo = "";
}
inline string getName()
{
return mName;
}
inline string getInfo()
{
return mInfo;
}
};

class Point : public Object
{
private:
int mX;
int mY;
public:
Point(int x = 0, int y = 0)
{
ostringstream oss;

mX = x;
mY = y;
mName = "Point";

oss << "Point(" << mX << ", " << mY << ")";
mInfo = oss.str();
}
inline int getX()
{
return mX;
}
inline int getY()
{
return mY;
}
};

class Line : public Object
{
private:
Point mP1;
Point mP2;
public:
Line(Point p1, Point p2)
{
mP1 = p1;
mP2 = p2;
mName = "Line";
mInfo = "Line from " + p1.getInfo() + " to " + p2.getInfo();
}
inline Point getStartPoint()
{
return mP1;
}
inline Point getEndPoint()
{
return mP2;
}
};

int main(int argc, char const *argv[])
{
Object obj;
cout << obj.getName() << endl;
cout << obj.getInfo() << endl << endl;

Point p1(1, 2);
Point p2(3, 4);
cout << p1.getName() << endl;
cout << p1.getInfo() << endl;
cout << p2.getName() << endl;
cout << p2.getInfo() << endl << endl;

Line line(p1, p2);
cout << line.getName() << endl;
cout << line.getInfo() << endl << endl;

return 0;
}
关于继承/组合的案例分析  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: