5
Mam problem polegający na tym, że chciałbym skopiować obiekt, ale nie chcę go kroić.Unikanie podziału obiektów C++
DerivedObj derivedObj;
myFunc(derivedObj);
void myFunc(MyObj &obj)
{
MyObj *saveForLater = new MyObj(obj); // slices my object
// ... //
}
Czy istnieje sposób na obejście tego? Muszę wykonać kopię, ponieważ oryginalny obiekt opuścił zakres, zanim będzie potrzebny.
@ clcto jak to zrobi jakąkolwiek różnicę? –
@clcto Przekazywanie wskaźnika w stosunku do odniesienia nie stanowi problemu. Wskaźniki * i * odniesienia NIE są pocięte na plasterki. Rozważ wskaźniki i odniesienia "nierozłączne". Krojenie odbywa się na wyciągu z poleceniem "new". –
Z tego co wiem, masz dwie główne opcje, wirtualną metodę o nazwie 'clone()' lub możesz nadać własność 'obj' na' myFunc() ', być może używając' shared_ptr '. –