디폴트 생성자
생성자는 객체가 생성되는 시점에 자동으로 호출되는 멤버 함수.
(객체의 생성은 인스턴스 선언 및 new 연산에 따른 동적 생성 두 경우에 의해 생긴다.)
전역 인스턴스가 존재할 경우, main() 함수보다 생성자가 먼저 호출되며, 생성자는 다중 정의가 가능하다.
소멸자
소멸자는 객체가 소멸하는 시점에 자동으로 호출되며 다중 정의가 불가능하다.
main()함수가 끝난 뒤에도 호출될 수 있다.
코드
#include <iostream>
class Test {
public:
Test() {
std::cout << "Test Start" << std::endl;
}
~Test() {
std::cout << "Test End" << std::endl;
}
};
Test test;
int main()
{
std::cout << "main() start" << std::endl;
std::cout << "main() end" << std::endl;
return 0;
}
동적으로 인스턴스를 선언할 경우 (new로 인스턴스를 선언할 경우)에는 메모리 유실이 발생할 수 있다.
#include <iostream>
class Test {
public:
Test() {
std::cout << "Test Start" << std::endl;
}
~Test() {
std::cout << "Test End" << std::endl;
}
};
int main()
{
Test* pTest = new Test;
std::cout << "main() start" << std::endl;
std::cout << "main() end" << std::endl;
return 0;
}
'C, C++' 카테고리의 다른 글
C++) 생성자 다중 정의 및 생성자 위임 (0) | 2024.01.23 |
---|---|
C++) 디폴트 생성자와 카피 생성자(참조자 멤버 초기화) (0) | 2024.01.22 |
C++) 클래스 기본 문법 (0) | 2024.01.21 |
C++) C++ 스타일 C코드와 this 포인터의 정의 (0) | 2024.01.20 |
C++) OOP에서 객체란 무엇인가 (0) | 2024.01.20 |