假设有一个基类指针指向一个基类对象:
baseclass *bptr;
bptr= new baseclass;
Run Code Online (Sandbox Code Playgroud)
现在,如果我这样做
bptr= new derived;
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?
小智 17
显而易见的答案是你正在泄漏原始的基类对象.
除了明显的内存泄漏之外,它还取决于定义baseclass和derived一些问题可能是:
derived不是公开的baseclass(如果是这样,在面试中要问一个可怕的问题)baseclass没有虚拟析构函数(在这种情况下,它是不安全的delete bptr;)如果我是你,我会回头问你的面试官几个问题:
并且,只有拥有类定义,才能使用虚拟析构函数等.也许采访者正在秘密寻找透视类型.
Arpan