Crée un objet getPosition() surchager
Résolu/Fermé
Creuilcreuil
Messages postés
44
Date d'inscription
jeudi 1 janvier 2015
Statut
Membre
Dernière intervention
7 septembre 2015
-
1 janv. 2015 à 18:14
ElementW Messages postés 4814 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 1 janv. 2015 à 22:13
ElementW Messages postés 4814 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 1 janv. 2015 à 22:13
A voir également:
- Crée un objet getPosition() surchager
- Cree un compte google - Guide
- Vente objet occasion entre particulier - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte gmail - Guide
- Créer un compte instagram sur google - Guide
2 réponses
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 227
Modifié par gravgun le 1/01/2015 à 18:24
Modifié par gravgun le 1/01/2015 à 18:24
'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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 janv. 2015 à 18:34
1 janv. 2015 à 18:34
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,
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 227
Modifié par gravgun le 1/01/2015 à 20:57
Modifié par gravgun le 1/01/2015 à 20:57
Dans l'absolu ça ne change rien, une structure étant une classe sans membres privés, et sans constructeur ni opérateur de copie/déplacement dans le cas d'une struct POD.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 1/01/2015 à 22:09
Modifié par fiddy le 1/01/2015 à 22:09
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...
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 227
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
Modifié par gravgun le 1/01/2015 à 22:14
Modifié par gravgun le 1/01/2015 à 22:14
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)
1 janv. 2015 à 18:23