[C++][중급] 생성자, 소멸자 호출 원리는?


[C++][중급] 생성자, 소멸자 호출 원리는?

오늘은 생성자, 소멸자 호출 순서와 이를 간과했을 때 발생할 수 있는 문제점에 대해 알아 보아요. 1. 생성자(소멸자) 호출 순서는? 2. 발생 가능한 문제점?해결책? 생성자(소멸자) 호출 순서는? 오늘은 생성자, 소멸자의 호출 원리를 정확히 알아보기 위해 아래 조금 복잡해 보이는 예제를 만들어 봤어요. 생성자 호출 순서?? 이게 뭐가 중요하냐? 라고 생각하실 수 있겠지만 모듈 설계를 하고 코딩을 하다 보면 초기화, 생성자 호출 순서 때문에 이상하게 동작하는 경우가 많습니다. 물론 디버깅도 어렵겠죠? #include <iostream> struct BM // base member { BM() { std::cout<< "BM()" << std::endl;} ~BM() { std::cout<<"!BM()" << std::endl;} }; struct DM // derived member { DM() { std::cout<< "DM()" << std::endl;} DM(int) { std...


#기반클래스 #디폴트생성자 #멤버데이터 #생성자 #소멸자 #파생클래스 #호출원리

원문링크 : [C++][중급] 생성자, 소멸자 호출 원리는?