我有返回对象的函数,但我很困惑我应该返回对象本身还是指向对象的指针?
这是我的功能的一个例子:
CImage CDocument::AddImage(string Name, string fileName)
{
CImage img = CImage();
img.Name = Name;
img.Path = fileName;
img.IwImage = Iw2DCreateImage(&fileName[0]);
Images.push_back(&img);
return img;
}
这是正确的还是我应该返回指向对象的指针:
CImage * CDocument::AddImage(string Name, string fileName)
{
CImage * img = new CImage();
img->Name = Name;
img->Path = fileName;
img->IwImage = Iw2DCreateImage(&fileName[0]);
Images.push_back(img);
return img;
}
虽然最后一个代码没有正确编译,因为我收到了这个错误:
error C2440: 'initializing' : cannot convert from 'CImage' to 'CImage *'
我认为这可能是一个非常简单的问题。我对 c++ 很陌生,所以请耐心等待。