본문 바로가기

C++ IDE를 위한 과정

C++ 구조체 VS 클래스, getter setter, 상속

728x90
반응형

아마 이번 포스팅까지 제대로 정독 하셨다면, 구조체와 클래스가 형태가 비슷한 것으 알 수있습니다.

사실 구조체에도 생성자 메소드 함수를 넣고 그 기능을 사용하실 수 있습니다.

그럼 왜 클래스와 구조체가 나뉘어져있을까?

라는 의문이 드실 수도 있습니다.

그 의문을 해소하고 클래스 에 대하여 더 알아 봅시다.


구조체와 클래스 차이점

  • 개념이 파생되게 된 계기가 다름
    • 구조체 : 하나의 변수만으로 표현하기 어려운 것들을 표현하기 위해 설계
    • 클래스 : 객체지향 프로그래밍을 실현하기 위해 설계
  • 문법 상으론 차이점이 거의 없음
  • 접근 제어자의 기본 값
    • 구조체의 접근 제어자의 기본 값은 public
    • 정보 은닉의 중요성에 따라 클래스의 접근 제어자의 기본 값은 private

getter & setter

  • 클래스 외부에서 private변수에 접근할 수 있도록 도와주는 메소드
  • getter : 변수를 반환해주는 메소드
    • get + 변수 명 방식으로 함수 이름을 지정한다.
  • setter : 변수에 값을 할당해주는 메소드
    • set + 변수 명 방식으로 함수 이름을 지정한다.

예시

실습. getter & setter 사용해보기

  • Rectangle 클래스를 만들고 getter와 setter함수를 선언한다.
  • 필드 변수 :  width, height
  • 메소드 : width와 height를 이용하여 사각형의 넓이를 반환하는 area 메소드 만들기
Rectangle rect(1,2) // 해당코드 이용하여 클래스 선언 후 넓이 출력
  • setter 함수를 이용하여 사용자에게 입력 받은 width와 height를 Rectangle 클래스 필드에 저장한다.
  • 출력 예시:

 

해답 예시


상속

기본 형식

  • private : 해당 클래스에서만 접근
  • protected : 상속관계 만 접근 가능
  • 클래스를 상속 받으면 하위 클래스는 상위 클래스의 함수를 사용할 수 있다.
    • 자식 클래스는 부모 클래스의 함수 사용 가능

실습. 클래스 상속 실습해보기

  • 동물 클래스를 작성하고, 고양이, 새, 클래스에 각각 상속합니다.
  • 동물 클래스에 이름, 나이를 입력하는 메소드 와 이를 출력하는 메소드, 먹이를 출력하는 메소드, 움직임을 나타내는 메소드를 정의한다.
  • 각 고양이, 새 클래스에서 내부 변수를 이용하여 각 동물의 특성에 맞게 움직임을 나타내는 메소드를 실행한다.
  • 출력 예시:

해답 예시

오늘도 같이 공부하시느라 수고 많으셨습니다!!!!!!


과제. 게임 캐릭터 생성하기

  • Character라는 클래스 생성
  • 필드 변수 : name, level, item_num
  • 생성자 : 사용자에게 콘솔로 캐릭터 이름을 입력 받고, 캐릭터 생성하기
  • 사용자에게 캐릭터를 어떻게 조작할지 입력하게 하기. (0을 입력할 때까지 입력한 번호에 해당하는 작업을 계속)
  • 위 기능은 모두 Character의 메소드로 만들어져 있어야 함

해답 예시는 하루코딩에서 ~~~

반응형

'C++ IDE를 위한 과정' 카테고리의 다른 글

C++ 포인터 AND 동적배열  (0) 2025.02.24
C++ namspace  (0) 2025.02.21
C++ 클래스 & this pointer  (0) 2025.02.11
C++ 함수 def선언  (0) 2025.02.10
C++ 구조체  (0) 2025.01.23