假设我有此代码 - 此代码什么都不做,我知道它们是内存泄漏,因为汽车的析构函数并不是虚拟的。但我不明白为什么我得到这个代码的调试断言。我使用Visual Studio 2010中在此代码中调试断言的原因
struct car {
~car()
{std::cout << "Destructor of car"; }
};
struct honda: public car {
virtual ~honda()
{ std::cout << "Destructor of honda"; }
};
int main()
{
car *c = new honda();
delete c;
}
如果honda
类的析构函数没有被声明为虚我不明白这一说法。我想知道那是什么问题?