Computer Science/C++ 38

[C++] 객체 지향 프로그래밍, 클래스, 접근 지시자 - 씹어먹는 C++ 4강

객체 지향 프로그래밍의 도래 프로그래밍 언어의 발전 1세대 프로그래밍 언어는 진공관 선을 조정해서 명령을 내리는 수준이었다. ex) ENIAC 컴퓨터 내장 메모리가 만들어지면서 2세대 프로그래밍 언어가 등장한다. 대표적인 사례가 assembly language이다. 0과 1로 이루어진 기계어에 문자열을 대응시킨 것에 가깝다. 그래서 저수준 low-level 언어라고 한다. 그러나 2세대 언어는 구조가 체계적이지 않아 논리구조가 뒤엉켜 오류를 찾기 힘든 '스파게티 코드'가 만들어지기 쉬웠다. 그래서 등장한 것이 3세대 프로그래밍 언어 - procedural programming language이다. pascal, C가 대표적이다. 'procedure'를 지향한다는 것은 다르게 표현하면, 함수를 지향하는 것..

[C++] C++ new, delete - 씹어먹는 C++ 3강

서론 object oriented programming 메모리 관리는 중요한 문제 프로그램이 실행되려면, 모든 변수의 주소값이 확정되어야 한다. 이런 문제를 해결하기 위해 'heap' 공간이 생겼다. 프로그램 실행시에 자유롭게 할당/해제할 수 있는 공간이다. heap은 stack에 비해 안정성이 떨어진다. C에서와 같이 힙에서의 메모리 할당을 위해 malloc, free 함수를 이용할 수 있다. C++에서는 이외에도 malloc에 대응하는 new와 delete에 대응하는 free를 사용할 수 있다. new와 free 사용법 type *pointer = new type; delete pointer; #include int main() { int *p = new int; // new int -> sizeof..