작은 걸음 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());
}
← 이전 레슨다음 레슨 →