Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"identifierare": ingen kopieringskonstruktor är tillgänglig eller kopieringskonstruktorn har deklarerats som "explicit"
Anmärkningar
En kopieringskonstruktor initierar ett objekt från ett annat objekt av samma typ. (Det gör en kopia av objektet.) Kompilatorn genererar en standardkopieringskonstruktor om du inte definierar några konstruktorer.
Åtgärda det här felet
Problemet kan uppstå när ett försök görs att kopiera en klass vars kopieringskonstruktor är
private. I de flesta fall bör en klass som har enprivatekopieringskonstruktor inte kopieras. En vanlig programmeringsteknik deklarerar enprivatekopieringskonstruktor för att förhindra direkt användning av en klass. Klassen kan vara värdelös på egen hand eller kräva en annan klass för att fungera korrekt.Om du bedömer att det är säkert att använda en klass som har en
privatekopieringskonstruktor, härleder du en ny klass från klassen medprivatekonstruktorn och gör enpublickopieringskonstruktor ellerprotectedkopieringskonstruktor tillgänglig i den nya klassen. Använd den härledda klassen i stället för originalet.Problemet kan uppstå när ett försök görs att kopiera en klass vars kopieringskonstruktor är explicit. Att deklarera en kopieringskonstruktor som
explicitförhindrar att objekt av en klass skickas till eller returneras från funktioner. Mer information om uttryckliga konstruktorer finns i Användardefinierade typkonverteringar.Problemet kan uppstå när ett försök görs att kopiera en klassinstans som deklarerats
constmed hjälp av en kopieringskonstruktor som inte tar enconstreferensparameter. Deklarera kopieringskonstruktorn med enconsttypreferens i stället för en referens av typen icke-const.