2014-11-02 1 views

답변

8

예 : 나는 실패한 주장은 2013 년

class P {}; 

class C : public P 
{ 
public: 
    virtual void a() {} 
}; 

int main() 
{ 
    P* p = new C(); 
    delete p; 
} 

++ VC에 실패한 주장을 얻을 정적으로 알려진 유형과 다르며 후자에는 가상 소멸자가 없습니다.

C++ 11 §5.3.5/3

제 대체 ( 개체 삭제)에서

오브젝트의 정적 유형을 삭제할 경우 해당 다르다 동적 유형 인 경우 정적 유형은 삭제할 객체의 동적 유형의 기본 클래스이고, 정적 유형은 가상 소멸자가 있거나 동작이 정의되지 않음

+0

가상 소멸자를 보내겠습니까? – Surt

+0

@Surt : 예 [[[[[ –

+0

@ Cheersandhth.-Alf - 고마워요 !!! 그게 사실이라면 - 모든 소멸자가 자동으로 가상 인 것은 아닙니다 (나는 그것이 성능 문제라고 생각합니다 ...). – Ofer

관련 문제