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 |