diff --git a/Polymorphism/virtual destructor.md b/Polymorphism/virtual destructor.md index 2ff773bd..99134ca3 100644 --- a/Polymorphism/virtual destructor.md +++ b/Polymorphism/virtual destructor.md @@ -58,7 +58,7 @@ int main() { `` Parent 소멸자 `` -이 결과를 봤을 때 부모 클래스만 소멸되고 자식 클래스는 소멸이 되지 않은 모습이다. 그래서 `` 메모리 누수`` 가 발생하게 된다. 메모리 누수가 쌓이게 되면 `` 시스템에 부하가 갈수 있다. `` 이 문제를 해결하기 위해서 부모 클래스의 소멸자가 가상함수가 되어야한다. 부모 클래스의 소멸자 앞에 virtual을 붙이면 자동으로 자식 클래스의 소멸자들은 가상함수가 된다. +이 결과를 봤을 때 부모 클래스만 소멸되고 자식 클래스는 소멸이 되지 않은 모습이다. 그래서 ** 메모리 누수 ** 가 발생하게 된다. 메모리 누수가 쌓이게 되면 ** 시스템에 부하가 갈수 있다. ** 이 문제를 해결하기 위해서 부모 클래스의 소멸자가 가상함수가 되어야한다. 부모 클래스의 소멸자 앞에 virtual을 붙이면 자동으로 자식 클래스의 소멸자들은 가상함수가 된다. 다음은 가상 소멸자를 사용한 프로그램이다. ``` #include using namespace std; @@ -88,3 +88,4 @@ int main() { Child 소멸자 `` 자식 클래스를 가진 클래스라면 부모 클래스의 소멸자에 virtual을 붙여 가상 소멸자로 만드는 것이 좋다. 소멸자가 가상 함수라면 메모리 누수도 발생하지 않고 손해볼 게 없으나 가상 소멸자가 아니라면 손해볼 것이 많다. +