我正在做对吗?我试图委托一个C++类的构造函数,因为它基本上是相同的代码重复3次..我读了C++ x11,并阅读g ++ 4.7.2允许这个,但我不知道如果我这样做右:委托构造函数C++
Bitmap::Bitmap(HBITMAP Bmp)
{
//Construct some bitmap stuff..
}
Bitmap::Bitmap(WORD ResourceID)
{
HBITMAP BMP = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED);
Bitmap(BMP); //Delegates to the above constructor? Or does this create a temporary?
}
或做我需要做的:
Bitmap::Bitmap(HBITMAP Bmp)
{
//Construct some bitmap stuff..
}
Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED))
{
}
第二个是正确的。它不会编译? – chris
都编译。我只是想知道我是否需要初始化列表版本,或者如果第一个可以接受。 – Brandon
啊,我看到你的困境。第一个创建一个未命名的对象,并且不做任何事情,就像'int(5);'会。 – chris