gpt4 book ai didi

c++ - 在按钮中实例化类的范围问题

转载 作者:行者123 更新时间:2023-11-28 08:21:44 26 4
gpt4 key购买 nike

我有一些代码位于 Qt GUI 的按钮中。这段代码实例化了一个我开发的类,它做了一些处理,并返回一个 unsigned char**,像这样:

void Viewer::button_click()
{
Classifier *pc = new Classifier(hhfile, vvfile, hvfile,aoix, aoiy,aoiw, aoih, target, filter );
unsigned char **data = pc->classify();
.
.
.
}

我第一次点击按钮时,数组数据中包含正确的信息。在不更改分类器类的任何参数的情况下,如果我再次单击该按钮,数据将返回 FUBAR'd。

我没有明确删除数据或电脑,但我必须这样做吗?这些位于按钮功能范围内,所以我想我应该得到完全相同的结果,无论数据实际发生了什么,或者在 Classify 类中发生了什么。它是否正确?连续两次将相同的参数传递给一个类会产生不同的结果的可能原因是什么?

最佳答案

new 是语言使用的关键字,当你指定你想要的东西在 beyond 函数范围内存在时。对于函数范围的对象,您只需声明它们,即

Classifier pc(hhfile, vvfile, hvfile,aoix, aoiy,aoiw, aoih, target, filter );

是否需要对 classify() 返回的内存做任何事情,没有看到源代码我不能说。

最有可能的问题是您的参数是引用或指针,而您却在不应该修改该数据的情况下进行了修改。

关于c++ - 在按钮中实例化类的范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5583120/

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