Crée un objet getPosition() surchager
Résolu
Creuilcreuil
Messages postés
54
Statut
Membre
-
ElementW Messages postés 5690 Statut Contributeur -
ElementW Messages postés 5690 Statut Contributeur -
Bonjour,
je débute en c++ et je voudrait savoir comment avoir mon propre getPosition() et pouvoir lui
demander de retourne par exemple la position X, ex:"getPosition().x".
Pour l'instant j'utilise un objet spécial pour cette tache "getPositionX()" mais c'est pas très propre.
Mercie de m'avoir lue.
je débute en c++ et je voudrait savoir comment avoir mon propre getPosition() et pouvoir lui
demander de retourne par exemple la position X, ex:"getPosition().x".
Pour l'instant j'utilise un objet spécial pour cette tache "getPositionX()" mais c'est pas très propre.
Mercie de m'avoir lue.
A voir également:
- Crée un objet getPosition() surchager
- Cree un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Comment cree un compte gmail - Guide
- Créer un lien pour partager des photos - Guide
- Comment créé un compte paypal - Guide
2 réponses
'lut, tu peux retourner une
from human import idiocy
del idiocy
structaussi ;)
struct Coord {
int x, y;
};
class Object {
private:
int x, y;
public:
Coord getPosition() const;
};
// et dans le .cpp
Coord Objet::getPosition() const {
// Si tu fais du C++11:
return Coord { x, y };
// Sinon, pour le C++ "normal":
Coord c; c.x = x; c.y = y;
return c;
}Après niveau performance, quand c'est pas optimisé par le compilateur y'a une copie de la structure lors du renvoi. Sinon, les RVO (return value optimization) font disparaitre la perte de performance.
from human import idiocy
del idiocy
Creuilcreuil
Messages postés
54
Statut
Membre
2
Merci.
Bonjour,
Au lieu de la structure, il vaudrait mieux faire une classe Coordonnees.
Cdlt,
Au lieu de la structure, il vaudrait mieux faire une classe Coordonnees.
Cdlt,
Comment ça une structure est une classe sans membres privés ? sans constructeur ?
En C++, effectivement struct et class sont quasiment identiques. Mais par convention, on utilise struct en C++ comme on le fait en C (pas de fonctions membres, etc.), et pour le reste on utilise plutôt class.
Après et comme souvent, chacun est libre de respecter les conventions...
En C++, effectivement struct et class sont quasiment identiques. Mais par convention, on utilise struct en C++ comme on le fait en C (pas de fonctions membres, etc.), et pour le reste on utilise plutôt class.
Après et comme souvent, chacun est libre de respecter les conventions...
rien n'interdit l'utilisation de membres privés
Oui j'ai mal dit, en effet je pensait à la visibilité publique par défaut.
Non plus...
J'ai précisé que c'est dans le cas où il s'agit d'une struct POD...
Quant à l'utilisation, effectivement chacun ses gouts et son utilisation. Toutefois les fonctions membres sont ici des méthodes, qui donc n'ont pas d'incidence sur la structure elle-même, à l'instar d'un pointeur de fonction qu'on mettrait en C; où dans les deux cas on est obligé de passer un pointeur vers "l'objet" concerné (
Oui j'ai mal dit, en effet je pensait à la visibilité publique par défaut.
Non plus...
J'ai précisé que c'est dans le cas où il s'agit d'une struct POD...
Quant à l'utilisation, effectivement chacun ses gouts et son utilisation. Toutefois les fonctions membres sont ici des méthodes, qui donc n'ont pas d'incidence sur la structure elle-même, à l'instar d'un pointeur de fonction qu'on mettrait en C; où dans les deux cas on est obligé de passer un pointeur vers "l'objet" concerné (
thisen C++, dont le passage en argument est automatique (après ça dépend des conventions d'appel et de mangling), et une variable manuelle en C
thiz,
self, ou autre)