Copy assignment operator
Da cppreference.com.
![]() |
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.
La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
Un operatore di assegnamento per copia di
T
classe è un non-modello non statico funzione membro con il nome che prende operator= esattamente un parametro di tipo T, T&, const T&, volatile T& o const volatile T&. Un tipo con un operatore pubblico di assegnamento per copia è CopyAssignable
.Original:
A copy assignment operator of class
T
is a non-template non-static member function with the name operator= that takes exactly one parameter of type T, T&, const T&, volatile T&, or const volatile T&. A type with a public copy assignment operator is CopyAssignable
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica] Sintassi
class_name & class_name :: operator= ( class_name )
|
(1) | (dal C++11) | |||||||
class_name & class_name :: operator= ( const class_name & )
|
(2) | (dal C++11) | |||||||
class_name & class_name :: operator= ( const class_name & ) = default;
|
(3) | (dal C++11) | |||||||
class_name & class_name :: operator= ( const class_name & ) = delete;
|
(4) | (dal C++11) | |||||||
[modifica] Spiegazione
# Dichiarazione tipica di un operatore di assegnamento copia quando copy-and-swap idiom può essere utilizzato
Original:
# Typical declaration of a copy assignment operator when copy-and-swap idiom can be used
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
# Dichiarazione tipica di un operatore di assegnamento copia quando idioma copy-and-swap non può essere utilizzato
Original:
# Typical declaration of a copy assignment operator when copy-and-swap idiom cannot be used
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
# Forzare un operatore di assegnamento per copia deve essere generato dal compilatore
Original:
# Forcing a copy assignment operator to be generated by the compiler
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
# Evitare l'assegnazione implicita copia
Original:
# Avoiding implicit copy assignment
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
L'operatore di assegnamento per copia viene chiamato ogni volta selezionato da sovraccarico risoluzione, ad esempio, quando un oggetto appare sul lato sinistro di un'espressione di assegnazione.
Original:
The copy assignment operator is called whenever selected by sovraccarico risoluzione, e.g. when an object appears on the left side of an assignment expression.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica] Implicitamente-ha dichiarato un operatore di assegnazione di copia
Se non definiti dall'utente operatori di assegnazione di copia sono forniti per un tipo di classe (struct, class o union), il compilatore sempre dichiarare un linea come membro pubblico della classe. Questo implicitamente dichiarato operatore di assegnamento per copia ha la T& T::operator=(const T&) forma se si verificano tutte le seguenti condizioni:
Original:
If no user-defined copy assignment operators are provided for a class type (struct, class, or union), the compiler will always declare one as an inline public member of the class. This implicitly-declared copy assignment operator has the form T& T::operator=(const T&) if all of the following is true:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
- ogni base diretta
B
diT
ha un operatore di assegnamento per copia i cui parametri sonoB
oconst B&
o const volatile B&Original:each direct baseB
ofT
has a copy assignment operator whose parameters areB
orconst B&
or const volatile B&The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - ciascun membro non statico dati
M
diT
di tipo classe o una matrice di tipo di classe ha un operatore di assegnamento per copia i cui parametri sonoM
oconst M&
o const volatile M&Original:each non-static data memberM
ofT
of class type or array of class type has a copy assignment operator whose parameters areM
orconst M&
or const volatile M&The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
In caso contrario il implicitamente dichiarato operatore di assegnamento per copia è dichiarato come T& T::operator=(T&). (Si noti che a causa di queste regole, il implicitamente dichiarato-operatore di assegnamento per copia non può legarsi a un argomento volatili lvalue)
Original:
Otherwise the implicitly-declared copy assignment operator is declared as T& T::operator=(T&). (Note that due to these rules, the implicitly-declared copy assignment operator cannot bind to a volatile lvalue argument)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Una classe può avere più operatori di assegnazione di copia, ad esempio sia T& T::operator=(const T&) e T& T::operator=(T). Se alcuni definiti dall'utente operatori di assegnazione di copia sono presenti, l'utente può comunque forzare la generazione del gestore copia implicitamente dichiarato di assegnazione con la parola chiave
default
.Original:
A class can have multiple copy assignment operators, e.g. both T& T::operator=(const T&) and T& T::operator=(T). If some user-defined copy assignment operators are present, the user may still force the generation of the implicitly declared copy assignment operator with the keyword
default
.The text has been machine-translated via