접근제어자

Access modifier: public, private

클래스 내부에 속성이나 메서드에 접근을 허용하거나 허용을 금지하기 위해 사용하는 명령을 접근제어자라 한다. 생략시 외부 접근을 허용하지 않는다.

public: 어디서든 접근 가능한 공개 속성이나 메서드를 정의한다. private: 클래스 내에서만 접근 가능한 속성, 메서드를 정의한다.

클래스의 멤버 변수는 일반적으로 외부에서 접근할 수 없도록 private으로 설정한다. 외부에서 멤버 변수에 제한적 사용을 위해 getter, setter를 제공한다.

실습 예제

ch07ex6_car2.cpp

Car 클래스를 작성하시오.

1. 멤버 변수 (private)

  • int speed : 자동차 속도(0 ~ 300 사이만 허용)

  • string color : 자동차 색상

    • 허용 색상 : "RED", "WHITE", "BLACK", "BLUE"

  • int door : 문 개수(2 ~ 7 사이만 허용)


2. 멤버 함수 (public)

(1) void setSpeed(int speed)

  • speed가 0~300 사이일 때만 멤버 변수에 저장

  • 범위 밖이면 “속도 범위 오류” 출력

(2) void setColor(string color)

  • color가 허용된 색상 목록에 있을 때만 저장

  • 목록에 없으면 “색상 범위 오류” 출력

  • 색상 목록은 다음 배열로 검사할 것

(3) void setDoor(int door)

  • 2~7 사이일 때만 저장

  • 범위를 벗어나면 “문 개수 오류” 출력

(4) int getSpeed() const

(5) string getColor() const

(6) int getDoor() const

  • 각각 멤버 변수 반환

(7) void display() const

  • 자동차 정보를 아래 형식으로 출력


3. main()에서 작성할 내용

  • Car 객체 생성

  • setSpeed(), setColor(), setDoor()로 값 설정

  • display()로 최종 정보 출력

ch07ex7_password.cpp

Gate 클래스를 작성하시오.

1. 클래스 이름

  • Gate

2. 멤버 변수 (private 영역)

  • 길이가 10인 비밀번호 저장용 char 배열 하나

    • 초기 비밀번호는 "12345678"으로 설정할 것

3. 멤버 함수 (public 영역)

  • openGate(const char* password) const

    • 사용자가 입력한 비밀번호(password)와 멤버 변수의 비밀번호를 strcmp로 비교하여 같으면 "Gate open!" 틀리면 "Invalid Password!" 출력할 것

ch07ex8_dice.cpp

Dice 클래스를 작성하시오.

1. 멤버 변수 (private)

  • dice : 주사위 결과 저장

  • user : 사용자 입력값 저장

2. 멤버 함수 (private)

  • rollDice() → 랜덤으로 1~6 주사위 값 생성

  • getUser(prompt) → 사용자에게 숫자 입력받기

  • checkUser() → 사용자 값과 주사위 값 비교 결과 출력

3. public 함수

  • start()

    • 사용자 입력 → 주사위 생성 → 결과 출력 순으로 실행될 것

4. main()

  • 난수 시드 설정 후

  • Dice 객체 생성 → start() 실행

실습 문제

ch07lab4_lamp.cpp

Lamp 클래스를 작성하시오.


1. 멤버 변수 (private)

  • bool isOn

    • 전구의 현재 상태 저장

    • 켜짐(true) / 꺼짐(false)


2. 멤버 함수 (public)

(1) void turnOn()

  • 전구 상태를 켜짐(true)으로 변경

(2) void turnOff()

  • 전구 상태를 꺼짐(false)으로 변경

(3) void display() const

  • 전구가 켜져 있을 경우

  • 전구가 꺼져 있을 경우

(4) void pushSwitch()

  • 현재 상태가 켜짐(true) 이면 꺼짐(false) 으로 바뀐다.

  • 현재 상태가 꺼짐(false) 이면 켜짐(true) 으로 바뀐다.

  • 상태 변경 후 display() 함수를 호출하여 결과를 출력한다.

ch07lab5_rsp.cpp

Last updated