본문 바로가기

Language&Framework&Etc/C++33

클래스의 완성(04-1) 정보 은닉(Information Hiding) 우리는 객체의 생성을 목적으로 클래스를 디자인. 좋은 클래스가 되기 위한 조건으로는 '정보 은닉'과 '캡슐화' 정보은닉의 이해 윈도우 그림판 프로그램 실행 시 다양한 형태의 도형을 그릴 수 있다. 이와 유사한 성격의 프로그램 C++을 이용해서 구현. 위치좌표를 표현하는 목적의 클래스는 기본으로 필요 class point { public: int x; int y; } 일단 위의 클래스에서 멤버변수 x와 y의 범위는 0이상 100이하이고, 좌 상단 좌표 [0, 0], 우 하단 좌표가 [100, 100]이라고 가정. 다음 예는, Point 클래스의 멤버변수가 public으로 선언되었을 때 발생할 수 있는 문제점이다 #include using namespace std; class Point { public: i.. 2020. 12. 24.
클래스의 기본(03-3) 객체지향 프로그래밍의 이해 객체지향 프로그래밍의 이해 C++은 객체지향 언어. 객체 : Object → 사물, 또는 대상 즉, Object는 우리 주변에 존재하는 물건(연필, 나무, 지갑, 돈 등등)이나 대상(선생님, 교수님 등등)을 의미 그렇다면 객체를 지향하는 프로그래밍이란? 예시 "나는 과일장수에게 두 개의 사과를 구매했다!" 객체의 종류 : "나", "과일장수", "사과" "나"라는 객체는 "과일장수"라는 객체로부터 "과일" 객체의 구매라는 액션을 취할 수 있어야 한다. 그러나 객체지향 프로그래밍에서는 "나" 그리고 "과일장수"와 같은 객체를 등장시킬 수 있을 뿐만 아니라, "나"라는 객체가 "과일장수"라는 객체로부터 "과일" 객체를 구매하는 행위도 그대로 표현할 수 있다. 즉, 객체지향 프로그래밍은 현실에 존재하는 사물과.. 2020. 12. 24.
클래스의 기본(03-2) 클래스(Class)와 객체(Object)-2 용어정리 : 객체(Object), 멤버변수, 멤버함수 구조체 변수, 클래스 변수라는 표현은 어울리지 않는다. 왜냐하면 구조체와 클래스는 변수의 성격만 지니는 것이 아니기 떄문. 변수라는 표현을 대신해서 '객체(Object)' 라는 표현을 사용 "객체는 무엇을 의미?" → 나중에 설명 위에서 선언된 car는 변수가 아니고 '객체'이다. 그리코 클래스를 구성하는(클래스 내에 선언된) 변수를 가리켜 '멤버변수'라 하고, 클래스를 구성하는(클래스 내에 정의된) 함수를 가리켜 '멤버함수' 멤버변수 char ID[CAR_CONST::ID_LEN]; int fuel; int curspd; 멤버함수 void init(const char* ID, int fuel); void showstate(); void accel().. 2020. 12. 24.
클래스의 기본(03-2) 클래스(Class)와 객체(Object)-1 클래스와 구조체의 유일한 차이점 키워드 struct를 대신해서 class를 사용하면, 구조체가 아닌 클래스가 된다. class Car { char ID[CAR_CONST::ID_LEN]; int fuel; int curspd; void showstate(); void accel(); void brake(); .... } 하지만, 이렇게 키워드를 바꿔놓으면 앞서 예제에서 보였던 다음의 방식으로 선언하지 못한다. Car car={"himan", 99, 0}; // (X) -> 구조체 변수 초기화 방식 이유 : 클래스 내에서 선언된 함수가 아닌, 다른 영역에서 변수를 초기화하려 했기 때문. 클래스는 기본적으로(별도의 선언을 하지 않으면) 클래스 내에 선언된 변수는 클래스 내에 선언된 함수에서만 접근이 가능하다.. 2020. 12. 24.