gpt4 book ai didi

c++ - 在构造函数C++中初始化属性时出现问题

转载 作者:行者123 更新时间:2023-12-01 14:57:39 25 4
gpt4 key购买 nike

当我尝试调试时
出现错误:
“最终project.exe中0x5784F2F6(ucrtbased.dll)的未处理异常:无效参数已传递给认为无效参数致命的函数。”
尝试过所有事情都无法弄清楚该如何解决。

using namespace std;
class Map :
{
private:
double *mhours_played;
string *maps;
unsigned element_num;
public:
Map()
{
maps[2] = { "Summoner's rift", "Aram" };
element_num = 2; mhours_played[2] = {};
}

~Map() { delete[] maps; }
};

最佳答案

这些陈述

maps[2] = { "Summoner's rift", "Aram" };
mhours_played[2] = {};

没有道理。 map和 mhours_played是在构造函数主体内具有不确定值的指针。它们不是您认为的数组。例如,表达式 maps[2]是类型为std::string的标量对象。

至少像
Map() :  mhours_played( new double[2]() ), 
maps( new std::string[2] { "Summoner's rift", "Aram" } ),
element_num( 2 )
{
}

和破坏者喜欢
~Map() 
{
delete[] maps;
delete[] mhours_played;
}

关于c++ - 在构造函数C++中初始化属性时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61829515/

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