【发布时间】:2013-10-24 15:27:35
【问题描述】:
如何从函数返回位图? 此代码不起作用:编译器错误
Gdiplus::Bitmap create()
{
Gdiplus::Bitmap bitmap(10,10,PixelFormat32bppRGB);
// fill image
return bitmap;
}
我不想返回一个指针,因为它会产生内存泄漏的机会。 (或者如果有办法避免这种内存泄漏的机会)
【问题讨论】:
-
Bitmap 类有一个私有的复制构造函数来防止你复制。有意地,位图的副本完全占用了太多的内存。你确实需要返回一个指针。显然,它不能是指向局部变量的指针,需要使用 new。
-
@Hans:实际上,
Gdiplus::Bitmap确实应该有一个移动构造函数,这将使上述代码既有效又(因为它已经只是句柄值的包装器)最优。希望这些包装器尽快获得 C++11 更新。