c++派生类析构函数为什么 自动调用基类构造函数
大家讲道理
大家讲道理 2017-04-17 14:58:34
0
3
799


基类与派生类的析构函数不是继承关系,继承析构里也没声明调用,为什么会自动调用基类析构呢?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(3)
大家讲道理

析构函数의 주요 기능은 이 클래스의 인스턴스 객체가 더 이상 필요하지 않을 때 이를 정리하는 것입니다(주로 메모리 해제). 基类도 클래스이고 Object를 가질 수도 있으므로 기본 클래스의 소멸자는 기본 클래스 내에서 열려 있는 일부 메모리를 정리하는 역할을 담당합니다.

그래서 派生类의 경우 메모리 오버헤드가 발생할 수 있으므로 파생 클래스에도 생성자가 필요합니다. 기본 클래스는 기본 클래스 내부의 메모리 오버헤드만 알고 파생 클래스는 해당 클래스의 메모리 오버헤드만 알고 있습니다. 파생 클래스 자체는 서로를 이해하지 못합니다. 대부분의 상속 관계는 기본 클래스를 확장하는 관계를 기반으로 합니다.

파생 클래스가 기본 클래스를 강화합니다. 파생 클래스의 인스턴스 객체가 기본 클래스가 소멸될 때 자동으로 소멸자를 호출하지 않으면 누가 기본 클래스를 정리합니까?

편의상? , 안전과 관리를 위해 파생 클래스의 객체가 소멸되면 상속 메커니즘은 계층적으로 소멸자를 호출합니다.基类的内部, 有一些是派生类不了解的.

한 사람이 일을 책임진다. 아이가 문제에 빠지면 아버지에게 자신의 실수를 인정하라고 요구해서는 안 된다. 상속 관계에서는 기본 클래스가 책임을 진다. 기본 클래스, 파생 클래스는 파생 클래스의 책임을 가지며, 모든 부서가 서로 협력해야 프로그램이 원활하게 실행될 수 있습니다.

阿神

파생 클래스의 소멸자에서 기본 클래스의 소멸자를 명시적으로 호출할 필요가 없습니다. 각 클래스마다 소멸자가 하나만 있고 컴파일러는 프로그래머의 개입 없이 선택하는 방법을 알고 있기 때문입니다.

게다가 소멸자와 생성자의 실행 순서도 정반대입니다.
파생 클래스 객체를 생성할 때 생성자의 실행 순서는 상속 순서와 동일합니다. 즉, 기본 클래스 생성자는 먼저 실행된 다음 파생 클래스가 실행됩니다.
파생 클래스 객체를 소멸할 때 소멸자의 실행 순서는 상속 순서와 반대입니다. 즉, 파생 클래스 소멸자가 먼저 실행된 다음 기본 클래스 소멸자가 실행됩니다.

巴扎黑

1. 파생 클래스 소멸자는 기본 클래스 소멸자만 호출하고 기본 클래스 생성자는 호출하지 않습니다. 귀하의 질문이 잘못되었습니다!
2. 왜 부르나요? 파생 클래스는 기본 클래스 부분과 파생 클래스 부분의 두 부분으로 구성됩니다. 컴파일러는 파생 클래스의 소멸자를 호출할 때 기본 클래스의 소멸자를 자동으로 호출하도록 도와줍니다. 성취하다. 훨씬 더 편리합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿