Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Identifikátor: není k dispozici konstruktor kopie nebo je konstruktor kopie deklarován explicitně
Poznámky
Konstruktor kopie inicializuje objekt z jiného objektu stejného typu. (Vytvoří kopii objektu.) Kompilátor vygeneruje výchozí konstruktor kopírování, pokud nedefinujete žádné konstruktory.
Odstranění této chyby
K problémem může dojít při pokusu o kopírování třídy, jejíž copy konstruktor je
private. Ve většině případů by se neměla kopírovat třída, která máprivatekonstruktor kopírování. Běžná programovací technika deklarujeprivatekonstruktor kopírování, který brání přímému použití třídy. Tato třída může být sama o sobě nepoužitelná nebo ke správné funkci vyžaduje jinou třídu.Pokud zjistíte, že je bezpečné používat třídu, která má
privatekonstruktor kopírování, odvodit novou třídu z třídy, která máprivatekonstruktor, a vytvořitpublicneboprotectedkopírovat konstruktor k dispozici v nové třídě. Použijte odvozenou třídu namísto původní.K problémem může dojít při pokusu o zkopírování třídy, jejíž konstruktor kopírování je explicitní. Deklarování konstruktoru kopírování jako
explicitbrání předávání a vracení objektů třídy do/z funkcí. Další informace o explicitních konstruktorech naleznete v tématu Převody typů definované uživatelem.K problému může dojít při pokusu o zkopírování instance třídy deklarované
constpomocí konstruktoru kopírování, který nepřebírajíconstreferenční parametr. Deklarujte konstruktor kopírování s odkazemconstna typ místo odkazu na jiný typ než const.