オブジェクトを返す関数がありますが、オブジェクト自体またはオブジェクトへのポインタを返す必要があるので混乱していますか?
これが私の関数の例です:
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++を初めて使用するので、我慢してください。