Modifier du pointeur this en c++
met15
-
kelm -
kelm -
Bonjour,
Voici ma question,Est il possible de modifier l'adresse du pointeur this en c++?
J'ai essayé de le modifié en lui passant l'adresse d'un objet du même type et le compilateur me dit:lvalue required as left operand of assignment.J'ai contourner le pb en passant par un objet temporaire,mais j'aimerais tout de même comprendre.
Ex:
Voiture * Une_voiture;
this=Une_voiture; //ERREUR!
Merci de m'aider!!:)
Voici ma question,Est il possible de modifier l'adresse du pointeur this en c++?
J'ai essayé de le modifié en lui passant l'adresse d'un objet du même type et le compilateur me dit:lvalue required as left operand of assignment.J'ai contourner le pb en passant par un objet temporaire,mais j'aimerais tout de même comprendre.
Ex:
Voiture * Une_voiture;
this=Une_voiture; //ERREUR!
Merci de m'aider!!:)
A voir également:
- Lvalue required as left operand of assignment c++
- Hijack this - Télécharger - Antivirus & Antimalwares
- No server is available to handle this request. - Forum Réseaux sociaux
- Cannot display this video mode - Forum Ecran
- No compatible source was found for this media - Forum Mozilla Firefox
- This windows build is not supported by this playbook ✓ - Forum Windows 10
5 réponses
De ce que je sais, c'est quelque chose que tu ne peux et ne DOIS pas faire. le this et langage objet (le c++ aussi par conséquent) pointe sur l'objet auquel appartient la fonction que tu utilise. Il ne peut donc pas pointer sur autre chose.
Mais je peux me tromper. Attends d'autres avis.
Mais je peux me tromper. Attends d'autres avis.
Salut,
voici un code où l'adresse de this est modifié...mais en effet pas de grand interet pour du code....
voici un code où l'adresse de this est modifié...mais en effet pas de grand interet pour du code....
#include <iostream> using namespace std; class Example_Class { private : int x; int y; public : Example_Class(); ~Example_Class(); void change_adrr(); void affiche(); }; Example_Class::Example_Class() //Constructor for the C++ tutorial { x = 22; y = 0; } Example_Class::~Example_Class() //destructor for the C++ Tutorial { } void Example_Class::change_adrr() { this->x++; this->y += 20; this->affiche();//affiche 23 et 20 Example_Class* t = new Example_Class(); *(this) = *t; this->affiche();//affiche 22 et 0 } void Example_Class::affiche() { cout<<this->x<<endl<<this->y<<endl; } int main() { Example_Class l; l.change_adrr(); return 0; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question