반응형
#include <iostream>
using namespace std;
////////////////클래스 정의///////////////////
class oop
{
public:
// 멤버 함수
oop();
oop(int x, int y);
oop(const oop& pt); //복사 생성자
void print();
private:
// 멤버 변수
int _x;
int _y;
public:
// 접근자
void Setx(int inix);
void Sety(int iniy);
int Getx();
int Gety();
};
///////////////함수 기능////////////////////
oop::oop(const oop& pt)
{
_x=pt._x;
_y=pt._y;
}
void oop::Setx(int inix)
{
if(inix<0)
_x=0;
else if(inix>100)
_x=100;
else
_x=inix;
}
void oop::Sety(int iniy)
{
if(iniy<0)
_y=0;
else if(iniy>100)
_y=100;
else
_y=iniy;
}
int oop::Getx()
{
return _x;
}
int oop::Gety()
{
return _y;
}
oop::oop(int x, int y)
{
Setx(x); //_x=x;
Sety(y); //_y=y;
}
oop::oop()
{
_x=0;
_y=0;
}
void oop::print()
{
cout << "x : " << _x << endl << "y : " << _y << endl;
}
//////////////////메인 함수///////////////
int main()
{
oop ack(3,4);
ack.print();
oop mck=ack; // 복사 생성자 함수 호출은 초기화일때만 가능.
mck.print();
mck=ack; // 복사 생성자 호출되지 않고 대입한다.
oop lk(ack); // 복사 생성자 함수 호출의 다른 방법.
lk.print();
return 0;
}
반응형
'System Programmings > C++' 카테고리의 다른 글
[C++] typedef로 멤버 함수 포인터 사용 (0) | 2010.07.05 |
---|---|
[C++] typedef로 함수 포인터 사용 (0) | 2010.07.05 |
[C++] 클래스에서 static과 소멸자 역할 확인 (0) | 2010.07.05 |
[C++] 동적 할당 및 소멸자 사용 (얕은 복사의 문제점) (0) | 2010.07.05 |
[C++] C++ 문자열 스타일 (0) | 2010.07.05 |