Coordinate.h
class Coordinate{
public:
Coordinate(int x, int y);
~Coordinate();
int getX();
int getY();
private:
int m_iX;
int m_iY;
};
Coordinate.cpp
#include<iostream>
#include "Coordinate.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;
}
int Coordinate::getX()
{
return m_iX;
}
int Coordinate::getY()
{
return m_iY;
}
Line.h
#include "Coordinate.h"
class Line{
public:
Line(int x1, int y1, int x2, int y2);
~Line();
printInfo();
private:
Coordinate *m_pCoorA;
Coordinate *m_pCoorB;
};
Line.cpp
#include<iostream>
#include "Line.h"
using namespace std;
Line::Line(int x1, int y1, int x2, int y2)
{
m_pCoorA = new Coordinate(x1, y1);
m_pCoorB = new Coordinate(x2, y2);
cout << "Line()" << endl;
}
Line::~Line()
{
delete m_pCoorA;
m_pCoorA = NULL;
delete m_pCoorB;
m_pCoorB = NULL;
cout << "~Line()" << endl;
}
void Line::printInfo()
{
cout << "(" << m_pCoorA->m_iX << "," << m_pCoorA->m_iY << ")" << endl;
cout << "(" << m_pCoorB->m_iX << "," << m_pCoorB->m_iY << ")" << endl;
}
#include<iostream>
#include "Line.h"
using namespace std;
int main()
{
Line *p = new Line(1, 2, 3, 4);
p->printInfo();
delete p;
p = NULL;
cout << sizeof(p) << endl;
cout << sizeof(Line) << endl;
return 0;
}