<Point.h>
#ifndef POINT_H
#define POINT_H
// Point 클래스를 정의한다.
class Point
{
public:
// 멤버 함수
void Print() const;
void Offset(int x_delta, int y_delta);
void Offset(const Point& pt);
// 생성자들
Point();
Point(int initialX, int initialY);
Point(const Point& pt);
// 접근자
void SetX(int value);
void SetY(int value);
int GetX() const {return x;};
int GetY() const {return y;};
private:
// 멤버 변수
int x, y;
};
inline void Point::SetX(int value)
{
if (value < 0)
x = 0;
else if (value > 100)
x = 100;
else
x = value;
}
inline void Point::SetY(int value)
{
if (value < 0)
y = 0;
else if (value > 100)
y = 100;
else
y = value;
}
#endif
<Point.cpp>
#include "point.h"
#include <iostream>
using namespace std;
void Point::Offset(int x_delta, int y_delta)
{
SetX( x + x_delta);
SetY( y + y_delta);
}
void Point::Offset(const Point& pt)
{
Offset( pt.x, pt.y);
}
Point::Point(const Point& pt)
{
x = pt.x;
y = pt.y;
}
Point::Point(int initialX, int initialY)
{
SetX(initialX);
SetY(initialY);
}
Point::Point()
{
x = 0;
y = 0;
}
void Point::Print() const
{
cout << "( " << x << ", " << y << ")\n";
}
<example.cpp>
#include "point.h"
int main()
{
// 객체를 생성한다.
Point pt(50, 50);
Point delta( 100, 100);
// 점을 x 축으로 10, y 축으로 -10 만큼 이동시킨다.
pt.Offset( 10, -10);
// 현재 점의 위치 출력
pt.Print();
// 점을 범위 밖으로 이동시킨다. (안전성 테스트)
pt.Offset( delta);
// 현재 점의 위치 출력
pt.Print();
return 0;
}
소멸자는 오버로딩이 불가능하다.
'About 프로그래밍!!! > C++' 카테고리의 다른 글
[C++]동적으로 객체 생성하기. (0) | 2010.06.23 |
---|---|
[C++]객체의 배열. (0) | 2010.06.23 |
[C++]멤버함수에 대한 포인터. (0) | 2010.06.23 |
[C++]부호 바꿔가며 더하기. (0) | 2010.06.22 |
[C++]인라인 함수. (0) | 2010.06.22 |