/*定义两个类
坐标类:Coordinate
数据成员:横纵坐标m_iX,m_iY
成员函数:构造,析构,数据封装
线段类:Line
数据成员:点两个 m_coorA,m_coorB
成员函数:构造,析构,数据封装,信息打印*/
/*Coordinate.h文件*/
class Coordinate
{
private:
int m_iX;
int m_iY;
public:
Coordinate(int x,int y);
~Coordinate();
void setX(int x);
void setY(int y);
int getX();
int getY();
};
/*Line.h文件*/
class Line
{
private:
Coordinate m_coorA(int x,int y);
Coordinate m_coorB(int x,int y);
public:
Line(int x1,int y1,int x2,int y2);
~Line();
void setA(int x,int y);
void setB(int x,int y);
void printfInfo();
};
#include
#include
#include "Coordinate.h"
#include "Line.h"
using namespace std;
Coordinate::Coordinate(int x,int y)
{
m_iX=x;
m_iY=y;
cout<<"Coordinate "<<m_iX<<" "<<m_iY<<endl;
}
Coordinate::~Coordinate()
{
cout<<"~Coordinate "<<m_iX<<" "<<m_iY<<endl;
}
void Coordinate::setX(int x)
{
m_iX=x;
}
int Coordinate::getX()
{
return m_iX;
}
void Coordinate::setY(int y)
{
m_iY=y;
}
int Coordinate::getY()
{
return m_iY;
}
Line::Line(int x1,int y1,int x2,int y2):m_coorA(x1,y1),m_coorB(x2,y2)
{
cout<<"Line()"<<endl;
}
Line::~Line()
{
cout<<"~Line"<<endl;
}
void Line::setA(int x1,int y1)
{
m_coorA(x1,y1).setX(x1);
m_coorA(x1,y1).setY(y1);
}
void Line::setB(int x2,int y2)
{
m_coorB(x2,y2).setX(x2);
m_coorB(x2,y2).setY(y2);
}
void Line::printfInfo()
{
cout<<"("<<m_coorA.getX()<<","<<m_coorA.getY()<<")"<<endl;
cout<<"("<<m_coorA.getX()<<","<<m_coorA.getY()<<")"<<endl;
}
int main()
{
Line *p=new Line(1,2,3,4);
p->printfInfo();
delete p;
p=NULL;
system("pause");
return 0;
}
//IDE是vs2010,求大佬指点哪里错了,编译总是通不过