gpt4 book ai didi

c++ - 获取错误 "Debug Assertion Failed"

转载 作者:行者123 更新时间:2023-11-28 06:16:34 25 4
gpt4 key购买 nike

我有一个指向我创建的称为多边形的类的指针 vector ,它具有针对不同形状的派生类。相关代码如下所示:

int main() {
vector<polygon*> polygonVec;

polygonVec.push_back(new triangle(2,3,1,2,-1,-4, "triangle 1"));
polygon *tempPolygon;
tempPolygon = new rectangle(1,2,3,4,5,6,7,8, "rectangle 1");
polygonVec.push_back(tempPolygon);


for(vector<polygon*>::iterator itr = polygonVec.begin();
itr != polygonVec.end();
itr++)
{
cout<<*itr<<endl;
}

for(vector<polygon*>::iterator itr = polygonVec.begin();
itr != polygonVec.end();
itr++)
{
delete *itr;
}

polygonVec.clear();

当我在 Visual Studio 2012 中编译并运行它时,它按预期运行并提供了所需的输出,但最后抛出了以下错误

"Debug Assertion Failed … _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)".

谁能告诉我为什么会这样?

最佳答案

确保你声明你的 polygon 析构函数 virtual,否则当你尝试通过指向基的指针。

关于c++ - 获取错误 "Debug Assertion Failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30168377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com