2012-10-22 4 views
0

Supposons que A est un type défini par l'utilisateur.Que fait le code C++ suivant?

A ob1; 
A ob2 = (A&) ob1; 

Qu'est-ce que maintenant ob2? J'ai vu le code ci-dessus dans un projet, et je me demandais quel est le but de celui-ci. Est-ce un moyen plus rapide de copier l'objet?

Répondre

4

La distribution n'a pas de sens. Une copie de l'objet est toujours faite de la même manière.

0

Cela n'a aucun sens. Quelqu'un a probablement vu l'opérateur d'affectation défini comme

A& A::operator=(const A& other) 

et supposé qu'ils devraient le lancer au travail.

+1

L'opérateur d'affectation n'est pas utilisé ici, cependant. En général, 'T x = y;' est équivalent à 'T x (T (y));', donc le code OPs est 'A ob2 (A (ob1));'; c'est juste un constructeur de copie. – GManNickG