Sto facendo bene? Sto provando a delegare un costruttore di classi C++ in quanto è praticamente lo stesso codice che si ripete 3 volte. Ho letto su C++ x11 e ho letto che g ++ 4.7.2 consente questo, ma non sono sicuro se lo sto facendo a destra:Delegate Constructor 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?
}
o devo fare:
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))
{
}
Il secondo è giusto. Non viene compilato? – chris
Entrambi compilano. Mi stavo chiedendo se avevo bisogno della versione dell'elenco di inizializzazione o se il primo è accettabile. – Brandon
Ah, vedo il tuo dilemma. Il primo crea un oggetto senza nome e non fa nulla con esso, proprio come 'int (5);' would. – chris