본문 바로가기

C++ Programing

클래스(Class) - 객체 생성

c++에서 클래스란 객체를 정의하는 틀 혹은 설계도로서, 클래스에 멤버 변수와 멤버 함수를 선언한다.

클래스와 객체의 관계는 붕어빵 틀과 붕어빵의 관계와 비슷하다.

붕어빵 틀은 c++클래스에, 붕어빵은 c++ 객체에 비유된다.

c++객체는 c++ 클래스라는 틀에서 찍어내어, 멤버 변수 메모리와 멤버 함수 코드를 실제 가지고 c++프로그램이 실행 되는 동안 실존하는 실체 혹은 인스턴스 이다.

 

위 그림과 같이 Person이라는 클라스가 있다. 클라스를 이용해 Jitae 객체와 Hyojin 객체를 만들 수 있다.

클래스의 멤버 변수를 보면 노란색 박스와 초록색 박스로 나누어져 있다.

노란색 박스는 사람한테 물어보지 않고 겉모습만 봐도 알 수 있지만, 초록색 박스의 경우 말해주지 않는 이상은 알 수 없다.

 

C++에서 노란색 박스는 public 이라고 하며 외부에서도 접근이 가능하다.

초록색박스는 private 이라고 하며 외부에서 접근이 불가능하다.

 

초록색박스의 정보를 알고 싶으면 물어봐야 하니 외부 통신을 위해 question을 추가하자.

 

위 그림과 같이 초록색 박스를 확인하기 위해 recv_question()을

그리고 남의 초록색 박스를 알아보기 위해 trans_question()을 추가하였다.

 

코드 구현

class Person
{
   private:
      string MBTI;
      int IQ;
      int sleepTime();
      int workTime();
      int gradCard(school_info sch);
      
   public:
      int eyes;
      int arms;
      int legs;
      int mouse;
      int noise;
      int recv_question(question_info qst);
      int trans_question(question_info qst, Person who);
};

 

private은 오직 question을 통해서만 답변이 가능하기에 캡슐화 하였고, 보면 알수 있는 정보들은 모두 public에 두었다.

'C++ Programing' 카테고리의 다른 글

클래스(class) - 생성자, 소멸자  (0) 2023.06.11
cin, cout and namespace  (0) 2023.04.02