
동적 할당 동적 할당은 프로그램 실행 중에 메모리를 할당하고 해제하는 것을 말한다. 이는 정적 할당과 대조되는데, 정적 할당은 컴파일 타임에 메모리가 할당되고 해제되는 것을 의미합니다. C/C++는 동적 할당을 주로 malloc, calloc, realloc, free함수나 new, delete 연산자를 사용하여 할당한다. 다른 언어에서도 유사한 메커니즘이 존재한다. [동적할당 방법] 정적 할당 정적 할당은 선언된 변수들의 메모리 크기를 컴파일 시간에 예측하며 사용에 있어 편리하다. 하지만 편리한 만큼 편의성을 제공해주는 기능들이 이미 규칙으로 통제되기 때문에 유연한 사용은 어려운 법이다. 동적 할당 동적 할당은 사용자 = 개발자가 언제, 얼만큼 새로운 값을 메모리에 할당할 것이고 언제 제거할 것인지 지..

생성자와 소멸자 객체의 시작과 끝 이번 챕터에서는 생성자와 소멸자에 대해 알아보려 한다. 들어가기 전 간단하게 생성자와 소멸자를 이해한다면, 생성자는 객체를 초기화하는 함수이며 소멸자는 객체의 메모리 해제를 하는 함수이다. 생성자 시작이 반, 초기화는 생활화 생성자는 클래스의 정적 바인딩 시, 선언과 동시에 실행되는 함수로, 오버라이딩으로 매개변수를 통해 외부의 값을 받아 클래스 내부에서 사용할 수 도 있고, 기본 생성자라는 암시적 멤버 함수를 통해 객체를 초기화할 수 있다. 모든 객체의 생성과 소멸은 해당 객체가 선언된 스코프 내에서 발생한다. 하여 전역 변수는 프로그램이 시작되면 생성자를 호출하고 프로그램이 끝나면 소멸자를 호출 한다. 생성자는 반드시 클래스 명칭을 따라야하며, 반환 값을 가지지 않는..

클래스의 크기 클래스의 크기에는 재미있는 사실이 있다. 우선 퀴즈 한번 풀어보자. (64 bit 환경이다.) 클래스에 대한 정보는 이 링크로 (※ 자료형의 크기는 컴파일러와 언어에 따라 다르다. 예로, Java의 경우 Unicode system을 사용하여 char가 2byte이다.) 1. 다음 클래스를 통해 생성한 객체의 크기를 구하시오. class MyClass { public: int i = 0; char c = 'a'; short s = 0; double d = 0; }; 더보기 class MyClass { public: int i = 0;// 4 bytes char c = 'a';// 1 bytes short s = 0;// 2 bytes double d = 0;// 8 bytes }; 정답 16..
클래스 객체 지향의 시작 이번에는 클래스와 객체라는 개념을 알아보자. 클래스란 무엇인가? 클래스란 실체가 없고 정보만 담고 있는 코드 "정보만 담고 있다."라는 말이 무엇일까. 프로그래밍을 하다보면, 구조체 혹은 리스트, 배열과 같은 자료구조까지 특정 정보들을 모으는 컨테이너들을 접해보았을 것이다. 클래스도 개념은 크게 다르지 않다. 클래스는 멤버변수, 다형성, 정적 멤버 등 다양한 정보를 선언 및 저장할 수 있고 함수, 접근 제어, 상속, 생성자, 소멸자와 같은 기능을 제공할 수도 있다. 그런데 어디서 많이 들어본 이야기이지 않은가? 바로 구조체와 굉장히 유사한 점이 많다는 것이다. 구조체와 클래스 우선 구조체와 클래스를 비교해보자. (추가로 메모리 할당량까지☆) C++ 구조체 C++ 클래스 기본 접근..