2011-10-23 3 views
1

Pour plus de précisions, je cite réponse James McNellis dans the post "Template assignment operator overloading mystery":Attribution-opérateur pour la classe basé sur un modèle

L'opérateur d'affectation de copie implicitement déclarée, qui est déclarée comme suit, est toujours produit:

Wrapper& operator=(const Wrapper&); 

Maintenant, j'ai une classe similaire et je voudrais savoir à quoi doit ressembler la définition de cet opérateur.

est ici la classe pour le rappel:

template<typename T> 
struct Wrapper; 

Ce qui est maintenant le match correctrice:

template<typename T> 
Wrapper& Wrapper<T>::operator=(const Wrapper&) 

ou

Wrapper& Wrapper::operator=(const Wrapper&) 

?

Ou est-ce la même chose?

Répondre

2

Ce

template<typename T> 
Wrapper& Wrapper<T>::operator=(const Wrapper&) 

qui est vraiment juste un raccourci pour

template<typename T> 
Wrapper<T>& Wrapper<T>::operator=(const Wrapper<T>&) 

L'autre version s'appliquerait à une classe non-modèle nommé Wrapper, il n'a pas d'effet sur vos modèles.

+0

+1: Parfait! Merci beaucoup à vous! – Atmocreations

Questions connexes