Problème de classe abstraite - C++
Fermé
Tohan
-
Modifié par Tohan le 2/05/2015 à 06:00
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 2 mai 2015 à 11:44
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 2 mai 2015 à 11:44
A voir également:
- Problème de classe abstraite - C++
- Classe ram - Guide
- Comment savoir sa classe ✓ - Forum Loisirs / Divertissements
- Bluetooth mercedes classe a 2005 - Forum Autoradio
- Retrouver la liste des élèves d'une classe - Forum Réseaux sociaux
- Impossible de trouver ou charger la classe principale @user_jvm_args.txt ✓ - Forum Réseaux sociaux
1 réponse
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 225
Modifié par gravgun le 2/05/2015 à 11:44
Modifié par gravgun le 2/05/2015 à 11:44
'lut, en prenant un
Le hic, c'est que ton objet abstrait
Donc, il suffit d'empêcher la copie, et pour ça, on se sert de références (pointeurs masqués si tu veux):
from human import idiocy
del idiocy
Entitetout court, C++ a un comportement défini: copier l'objet pour l'utiliser dans ta fonction.
Le hic, c'est que ton objet abstrait
Entite_Purene peut pas être utilisé pour être copié (constructeur de copie inexistant, devrait être virtuel... joyeux bazar).
Donc, il suffit d'empêcher la copie, et pour ça, on se sert de références (pointeurs masqués si tu veux):
class Collision { public: Collision(); bool PointIntoSquare(const Vector2f &p, const Entite &b) const; bool SquareIntoSquare(const Entite &b1, const Entite &b2) const; void trouverCote(Entite &b1, Entite &b2); void trouverLesCotes(Entite &b1, Entite &b2); void updateContact(); void addEntite(Entite *e); private: list<Entite*> Lentite; };Et dans ton code:
bool Collision::PointIntoSquare(const Vector2f &p, const Entite &b) const { ... }Tu te sers de
b(et
p) comme tu l'aurais fait sans référence. J'ai rajouté des
constet passé le vecteur en référence: essaie de tout passer en
constet référence dans les cas où tu ne fais que lire un objet, pas le modifier; ça évite les copies d'objet inutiles. Pareil pour le
constdes méthodes, pour quand tu modifies pas l'objet auquel elle appartiennent.
from human import idiocy
del idiocy