Erreurs, bugs, questions - page 1706
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Il fallait qu'on soit tous les trois si bêtes, hein ! ))
Alors pourquoi la première pièce de l'exemple de fxsaber fonctionne-t-elle ?
Pourquoi ne le ferait-il pas ? Il a une expression this[0] qui renvoie un pointeur. Voici la même chose sous une forme différente :
ce[0] est la valeur r ici.
Résultat Le problème est un non-sens. Malheureusement, le vocabulaire est rare pour l'expliquer.
fxsaber:
Точно не так
Результат
Le problème est une certaine inutilité
Malheureusement, le vocabulaire est rare pour l'explication.OK, je n'ai pas envie de réfléchir. Déjà fatigué.
Le problème est que le pointeur (descripteur) de rvalue se transforme en quelque sorte en lvalue après avoir été affecté à une variable. C'est un peu fou...
L'expression
sera vrai. Ce qui est parfaitement logique.
Les développeurs doivent formuler la raison pour laquelle c'est impossible de manière claire et agréable.
Oui, j'ai fait une erreur.
En bref, tout va bien :)
Le pointeur se voit attribuer rvalue, qui est ensuite écrasé par le nouveau A.
Où ? Ici ?
this[0] = new A ;
Ici, l'opérateur[] renvoie la valeur contenue dans la cellule Data[0]. Il ne s'agit pas d'une référence à cette cellule ou d'un pointeur vers celle-ci, mais simplement d'une copie de la valeur contenue dans cette cellule, c'est-à-dire rvalue. Rien ne peut être attribué à cette copie, bien sûr. Je ne comprends pas en quoi operator= change cela.