«destructor» 태그된 질문

21
Java에 대한 소멸자가 있습니까?
Java에 대한 소멸자가 있습니까? 이것에 대한 문서를 찾을 수없는 것 같습니다. 그렇지 않은 경우 어떻게 동일한 효과를 얻을 수 있습니까? 내 질문을보다 구체적으로 만들기 위해 데이터를 다루는 응용 프로그램을 작성 중이며 사양에 따라 응용 프로그램을 원래 시작된 상태로 되돌릴 수있는 '재설정'버튼이 있어야한다고 말합니다. 그러나 응용 프로그램을 닫거나 재설정 버튼을 누르지 …

9
파이썬 객체를 올바르게 정리하려면 어떻게합니까?
class Package: def __init__(self): self.files = [] # ... def __del__(self): for file in self.files: os.unlink(file) __del__(self)위의 AttributeError 예외로 실패합니다. 이해 파이썬은 보장하지 않습니다 때 "전역 변수"(이 맥락에서 구성원 데이터?)의 존재를 __del__()호출됩니다. 그 경우이고 이것이 예외의 원인 인 경우, 객체가 올바르게 파괴되도록하려면 어떻게해야합니까?
462 python  destructor 

7
기본 가상 소멸자를 명시 적으로 호출해야합니까?
C ++ (가상 소멸자를 사용하여)에서 클래스를 재정의 할 때 상속 클래스에서 가상으로 소멸자를 다시 구현하고 있지만 기본 소멸자를 호출해야합니까? 그렇다면 이런 식으로 생각합니다 ... MyChildClass::~MyChildClass() // virtual in header { // Call to base destructor... this->MyBaseClass::~MyBaseClass(); // Some destructing specific to MyChildClass } 내가 맞아?
350 c++  destructor 

16
소멸자에서 예외 던지기
대부분의 사람들은 소멸자에서 예외를 절대로 버리지 않는다고 . 그렇게하면 정의되지 않은 동작이 발생합니다. Stroustrup은 "벡터 소멸자가 모든 요소에 대해 소멸자를 명시 적으로 호출합니다. 이는 요소 소멸자가 던지면 벡터 소멸이 실패 함을 의미합니다. 소멸자에서 발생한 예외를 방지 할 수있는 좋은 방법은 없습니다. 따라서 라이브러리 요소 소멸자가 던질 경우 보증하지 않습니다 "(부록 …



11
서브 클래스에 대한 포인터에서 delete가 기본 클래스 소멸자를 호출합니까?
나는이 class A해당 필드 중 하나에 대한 힙 메모리 할당을 사용하는합니다. 클래스 A는 인스턴스화되어 다른 클래스 ( class B. 클래스 B의 객체로 작업을 마치면 delete소멸자를 호출한다고 가정합니다. 그러나 이것이 클래스 A의 소멸자를 호출합니까? 편집하다: 답변에서 나는 그것을 취합니다 (잘못된 경우 편집하십시오). delete B의 인스턴스 중 B :: ~ B (); …


12
C ++에서 순수한 가상 소멸자가 필요한 이유는 무엇입니까?
가상 소멸자가 필요하다는 것을 이해합니다. 그러나 왜 순수한 가상 소멸자가 필요한가? C ++ 기사 중 하나에서 저자는 클래스 추상을 만들 때 순수한 가상 소멸자를 사용한다고 언급했습니다. 그러나 멤버 함수 중 하나를 순수 가상으로 만들어 클래스 추상화를 만들 수 있습니다. 그래서 내 질문은 우리는 언제 소멸자를 순수 가상으로 만들까요? 누구든지 좋은 …

6
물체를 파괴하는 방법?
내가 아는 한 (매우 적음) 두 가지 방법이 있습니다. $var = new object() 그때: // Method 1: Set to null $var = null; // Method 2: Unset unset($var); 다른 더 나은 방법? 여기서 머리카락을 쪼개고 있습니까?

10
C ++ 소멸자는 언제 호출됩니까?
기본 질문 : 프로그램이 C ++에서 클래스의 소멸자 메서드를 언제 호출합니까? 개체가 범위를 벗어나거나 대상이 될 때마다 호출된다고 들었습니다.delete 더 구체적인 질문 : 1) 객체가 포인터를 통해 생성되고 그 포인터가 나중에 삭제되거나 가리키는 새 주소가 주어진 경우, 가리키는 객체가 소멸자를 호출합니까 (다른 어떤 것도 가리키는 것이 없다고 가정)? 2) 질문 …
118 c++  destructor 

7
C #에서 IDisposable과 소멸자를 사용하는 것의 차이점은 무엇입니까?
소멸자가 아닌 클래스에서 IDispose를 언제 구현합니까? 이 기사를 읽었 지만 여전히 요점이 누락되었습니다. 내 가정은 객체에 IDispose를 구현하면 가비지 수집기가 수행하기를 기다리는 대신 명시 적으로 '파괴'할 수 있다는 것입니다. 이 올바른지? 객체에 대해 항상 명시 적으로 Dispose를 호출해야 함을 의미합니까? 이에 대한 일반적인 예는 무엇입니까?
101 c#  .net  dispose  destructor 

3
C #에서 클래스의 소멸자와 Finalize 메서드의 차이점은 무엇입니까?
클래스에서 소멸자와 Finalize 메서드의 차이점은 무엇입니까? 최근에 Visual Studio 2008이 Finalize 메서드와 동의어 인 소멸자를 고려한다는 사실을 발견했습니다. 즉, Visual Studio에서는 클래스에서 두 메서드를 동시에 정의 할 수 없습니다. 예를 들어, 다음 코드 조각 : class TestFinalize { ~TestFinalize() { Finalize(); } public bool Finalize() { return true; } } …

2
GNU GCC (g ++) : 왜 다중 dtor를 생성합니까?
개발 환경 : GNU GCC (g ++) 4.1.2 단위 테스트에서 '코드 커버리지-특히 함수 커버리지'를 늘리는 방법을 조사하는 동안 일부 클래스 dtor가 여러 번 생성되는 것 같습니다. 왜 그런지 아는 분이 있습니까? 다음 코드를 사용하여 위에서 언급 한 것을 시도하고 관찰했습니다. "test.h"에서 class BaseClass { public: ~BaseClass(); void someMethod(); }; class …
90 c++  g++  destructor 

3
shared_ptr 매직 :)
Mr. Lidström과 저는 논쟁을했습니다. :) Lidström의 주장은 구조 shared_ptr<Base> p(new Derived);가 Base에 가상 소멸자를 필요로하지 않는다는 것입니다 . Armen Tsirunyan : "정말? shared_ptr이 올바르게 정리 될까요?이 경우 어떻게 그 효과를 구현할 수 있는지 보여 주시겠습니까?" Daniel Lidström : " shared_ptr 는 자체 소멸자를 사용하여 Concrete 인스턴스를 삭제합니다. 이것은 C ++ …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.