gpt4 book ai didi

c++ - 没有已知的参数 1 从 ‘Image*’ 到 ‘const Image&’ 的转换

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

我在调用我设置的复制构造函数时遇到一些困难。

Image::Image(const Image& img) /* Copy constructor */
{
this->x = img.x;
this->y = img.y;
this->data = img.data;
}

我正在尝试使用 Image input = *new Image(GetInput()); 调用它。 GetInput() 返回一个 Image*。有什么方法可以使参数匹配吗?

最佳答案

这样做:

Image input = *new Image(GetInput());

导致即时内存泄漏,因为分配的内存无处存储。

如果 GetInput() 不是每次都分配返回的 Image,你可以这样做:

Image input = *GetInput();

否则你最好使用一些智能指针:

std::unique_ptr<Image> input { GetInput() }; // C++11
auto input = std::make_unique<Image>(GetInput()); // C++1y / C++14

一个更好的解决方案是完全避免使用任何指针,但我想这超出了实际问题的范围......

此外,如果 Image::data 是一个动态分配的变量,如果您像在代码片段中那样简单地复制指针,将会遇到很多麻烦。

关于c++ - 没有已知的参数 1 从 ‘Image*’ 到 ‘const Image&’ 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23900672/

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