C++ 가상함수 virtual Fuction 가상함수는 파생 클래스에서 재정의 할 것으로 기대하는 멤버 함수를 뜻한다. 파생클래스에서 virtual 키워드를 사용하지 않아도 자동으로 가상함수가 된다. 가상 소멸자 소멸자는 가상함수로 선언 하여 기본 클래스와 파생 클래스 모든 소멸자가 호출되도록 한다. 생성자와 소멸자 호출 순서 부모 클래스가 있는 자식 클래스는 부모생성자 - 자식생성자 - 자식소멸자 - 부모소멸자 순으로 호출된다. new, delete 연산자 오버로딩 new 연산자는 메모리 할당, 생성자 호출, 주소 값의 형변환 작업을 진행한다. 연산자 함수가 먼저 호출되고 해당 타입의 생성자가 호출된다. void * operator new (size_t size) { void * adr = new ch..
운영체제 (Operating System) 메모리 구조 (Memory Structure) 운영체제의 메모리 구조는 유저 영역 과 커널 영역 두가지 영역으로 나뉜다. 사용자가 함부로 커널 영역에 접근할 수 없도록 영역을 나누어 놓았다. 유저 영역에는 4가지로 나뉘는데 코드, 데이터, 스택, 힙 으로 구분된다. 코드 영역 (Code) 실행할 프로그램의 코드가 저장되는 영역이다. 텍스트 영역이라고도 불린다. 여기서 코드는 컴파일된 기계어 코드를 뜻한다. 데이터 영역 (Data) 전역변수와 정적(static) 변수가 저장되는 영역이다. 프로그램이 시작되고 종료될 때까지 메모리에 계속 남아있다. 스택 영역 (Stack) 프로그램에서 호출되는 함수의 지역변수와, 매개변수가 저장되는 영역이다. 스택은 함수가 시작, ..