생성자 2

[C++] 싱글톤 패턴의 생성자와 소멸자 동작 이해 - new, delete키워드 with C++

new 키워드의 이해 지난 게시글에서는 static 키워드에 대해 알아보았었다. 이번 시간에는 싱글톤 패턴으로 디자인되었을 때 소멸자가 호출되지 않는 이유를 new 키워드에 초점을 맞춰 설명해 보도록 하겠다. C++ Reference에서는 new로 생성된 오브젝트가 그것이 생성된 범위에서 해제되지 않는 동적 메모리 할당을 위해 사용된다고 설명하고 있다. 즉, 프로그램 실행 중에 할당되며, 그 크기나 수명이 컴파일 시점에서 결정되지 않고, 필요에 따라 할당되거나 해제될 수 있다는 것을 의미한다. new 키워드를 사용할 때 몇 가지 주의사항이 있다. 이를 꼭 체크하고 사용하는 습관을 기르자. 메모리 누수: new로 동적 메모리를 할당하면, 반드시 delete를 사용하여 할당된 메모리를 반환해야 함. 그렇지 ..

Language/C++ 2023.08.13

[C++] CH3 클래스와 객체 (1)

객체에 대한 이해 캡슐화 : 객체(object)의 구성 요소들을 캡슐로 싸서 보호하고 볼 수 없게 하는 것으로, 객체의 가장 본질적인 특성 객체는 이 캡슐화(encapsulation)를 통해 외부의 접근을 통제하여 자신의 내부 요소들을 보호한다. 구성: 상태(state)인 멤버 변수와 행동(behavior)인 멤버 함수 행동으로 상태가 변하고, 어떤 행동은 객체 상태를 외부로 전달 클래스 : 객체를 정의하는 틀 혹은 설계도로서, 클래스에 멤버 변수와 멤버 함수를 선언한다. 이때 객체는 클래스라는 틀에서 찍어낸 멤버 변수와 멤버 함수를 실제로 갖고, C++ 프로그램이 실행되는 동안 실존하는 실체(instance)다. 객체가 생성되면 상호 별도 공간에 생성된다. 요약 캡슐화: 객체의 구성 요소들을 보호하는 ..

Language/C++ 2023.01.28