작은 걸음 V — 나만의 자료형 만들기
데이터와 기능 함께 묶기
데이터와 기능 함께 묶기
이번에 배울 것
class는 데이터와 그 데이터를 다루는 기능을 묶는 타입입니다. 객체는 그 타입으로 만든 실제 대상입니다. 이런 도구도 직접 만들 수 있다는 정도로 살펴봅니다.
실행해 보기
예제 · example1.cpp
class Counter
{
public:
void add_one()
{
value = value + 1;
}
int get_value()
{
return value;
}
private:
int value = 0;
};
void small_main()
{
Counter counter;
counter.add_one();
counter.add_one();
print(counter.get_value());
}
Counter 객체는 자신이 센 값 value를 가집니다. add_one을 두 번 호출하고 get_value()로 읽으면 2입니다.
public은 사용하는 쪽에 공개한 부분, private은 바깥에서 직접 접근하지 못하게 한 부분입니다. String이나 Window도 데이터와 관련 기능을 가진 객체로 사용해 왔습니다. 이번에는 생성자나 상속까지 배우지 않습니다.
Exercise — Counter에 reset 추가
Counter class에 값을 0으로 만드는 public reset()을 추가하고 동작을 확인하세요.
연습 문제 코드 · exercise1_starter.cpp
class Counter
{
public:
void add_one()
{
value = value + 1;
}
void reset()
{
// reset value.
}
int get_value()
{
return value;
}
private:
int value = 0;
};
void small_main()
{
Counter counter;
counter.add_one();
counter.add_one();
counter.reset();
print(counter.get_value());
}
Hint
reset 안에서 private value에 0을 대입하세요.
풀이 보기
class Counter
{
public:
void add_one()
{
value = value + 1;
}
void reset()
{
value = 0;
}
int get_value()
{
return value;
}
private:
int value = 0;
};
void small_main()
{
Counter counter;
counter.add_one();
counter.add_one();
counter.reset();
print(counter.get_value());
}