继承中的访问级别
FilePath: /WorkSpace/C++/20C++中类的继承/28-1.cpp
*/
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
class Object
{
protected:
string mName;
string mInfo;
public:
Object();
string name();
string info();
~Object();
};
Object::Object()
{
mName = "Object";
mInfo = "";
}
string Object::name()
{
return mName;
}
string Object::info()
{
return mInfo;
}
Object::~Object()
{
}
class Point : public Object
{
private:
int mX;
int mY;
public:
Point(int x=0,int y=0)
{
ostringstream s;
mX = x;
mY = y;
mName = "Point";
s<<"P("<<mX<<" , "<<mY<<")";
mInfo = s.str();
}
int x();
int y();
~Point();
};
int Point::x()
{
return mX;
}
int Point::y()
{
return mY;
}
Point::~Point()
{
}
class Line : public Object
{
private:
Point p1;
Point p2;
public:
Line(Point p1,Point p2);
~Line();
};
Line::Line(Point p1,Point p2)
{
ostringstream s;
this->p1 = p1;
this->p2 = p2;
mName = "Line";
s<<"Line is from "<<p1.info()<<" to "<<p2.info();
mInfo = s.str();
}
Line::~Line()
{
}
int main(int argc, char const *argv[])
{
Object o;
cout<<o.name()<<" --> "<<o.info()<<endl;
Point p(1,2);
cout<<p.name()<<" --> "<<p.info()<<endl;
Line l(Point(1,2),Point(2,3));
cout<<l.name()<<" --> "<<l.info()<<endl;
return 0;
}