virtual-destructor

    0

    1답변

    class Base { public: Base(){Foo();} ~Base(){Foo();} virtual void Foo(){std::cout<<"base";} }; class Derived: public Base { public: Derived(){Foo(

    0

    1답변

    리사이클 러 클래스의 객체를 사용하여 객체 만 삭제되는 클래스 (소멸자는 가상 임)를 작성했습니다. 그러나 나는 어느 누구라도 나의 리사이클 러 클래스에 대한 지식이 없어도 그 클래스의 객체를 삭제할 수 있다는 것을 발견했다. class A { public: A() {qDebug() << "cTor: A";} protected: v

    2

    1답변

    필자가 아는 한, 가상 함수가 있지만 비상 가상 소멸자가있는 클래스를 정의하는 것은 항상 실수 (또는 최소한 문제를 요구한다)이다. 이와 같이 (새로 작성한 "제로 규칙"에 대해 생각하면) 내게 암시 적으로 생성 된 소멸자는 적어도 하나의 다른 가상 함수가있는 클래스의 경우 가상으로 있어야합니다. 향후 버전의 C++ 표준에서이를 위임 할 수 있습니까? 또는

    1

    1답변

    안녕하세요 파생 클래스에서 파생 클래스를 만들려고합니다. 하지만이 메모리 문제를 해결하는 방법을 모르겠습니다. 아래의 클래스 C는 자신의 소멸자와 B 소멸자를 호출합니다. 하지만 그건 내 기억을 엉망으로 만든다. 다른 aproach를 사용해야합니까, 아니면 해결책이 있습니까? class A { public: virtual ~A() {} };

    2

    1답변

    누군가 C++ 오브젝트 모델에 관한이 이론적 질문을 설명 할 수 있습니까? 그것은 최근의 시험이었고 나는 그 문제로 곤란을 겪었습니다. 질문 : C++ 표준위원회는 Java, C# 및 Smalltalk의 성공에 주목하여 언어의 개체 모델에 추가 수준을 추가하기로 결정했습니다. 즉, 각 클래스에는 런타임에 표현이있는 메타 클래스가 있어야합니다. 상대방은 이것

    1

    1답변

    GNU 컴파일러를 사용하고 있습니다. 클래스 B의 가상 소멸자는 소멸자 ~ D()를 호출하지 않습니다. 아무도 그 이유를 말할 수 있습니까? #include<iostream> using namespace std; class B { double* pd; public: B() { pd=new double [20];

    1

    2답변

    기본 클래스가 int를 포함하고있는 파일 설명자에 대한 클래스 계층 구조를 가지고 놀았습니다. 파괴 중에 하위 클래스에 close이 호출되고 자식 클래스는 가상 메서드 나 데이터 멤버를 추가하지 않습니다. named_file_filedes은 경로를 가져 와서 ctor에서 open으로 기본을 초기화하거나 가상 멤버가 아닌 함수로 초기화합니다 (예 : kque

    12

    4답변

    catch 블록 범위를 벗어날 때 예외 소멸자가 호출됩니까? (우리가 다시 던지 지 않는 경우) 클래스 A가 있고 소멸자가 가상이 아니라고 가정합니다. B는 예외 소멸자 경우에, 캐치 범위를 벗어난다 이동 호출하는 경우 A. 일부 기능은 예외 으로 B 클래스의 객체를 던지고가 캐치 블록 catch(A& a){ ... } 의해 잡힌 가정 상속 이 경우

    1

    3답변

    을 삭제하려고 할 때 디버그 어설 션이 실패했습니다. C++을 처음 사용하고 가상 함수를 학습하고 클래스에 가상 함수가 있고 클래스에 포인터 멤버가 있으면 가상 소멸자를 작성해야한다는 것을 알아야합니다. 다음은 내 코드입니다, 나는 모두 디버그 어설의 오류 창 실패를 줄 것이다 가상 스튜디오 2013RC #include<iostream> using na

    1

    2답변

    다른 클래스에서 상속받은 클래스가 있다고 가정하고 기본 클래스 지점에서 파생 클래스 객체로 포인터를 만듭니다. 이제 기본 클래스 소멸자가 가상으로 정의 된 경우 문제가 발생하지 않습니다. 그러나, 제 경우에는 기본 클래스 소멸자가 가상으로 선언되지 않았으므로이 포인터를 삭제하면 메모리 누수가 발생합니다. 기본 클래스 코드를 수정하지 않고 어떻게이 문제를 해