본문 바로가기

System Programmings/C++

[C++] 클래스 기본 구성 및 접근자

반응형
#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;
}
반응형