débutante en c++ - C++ - Programmation
Marsh Posté le 11-01-2009 à 11:33:25
parce que il faudrait que tu lise tes cours et/ou que tu te renseigne un peu.
cf les Bibliolinks en post-it du forum.
Marsh Posté le 11-01-2009 à 15:47:33
C'est que tu as des mauvais bouquins ou que tu regarde mal...
Sinon de ce que je m'en rappelle, pour l'héritage ça modifie les appels dans le sens ou la création d'un objet enfant appellera le constructeur de son parent, et la même chose pour le destructeur.
Un objet const est un objet que tu ne peux pas modifier.
J'espère que tout ça est juste le C++ est loin pour moi...
Marsh Posté le 11-01-2009 à 21:29:39
LePhasme a écrit : la création d'un objet enfant appellera le constructeur de son parent, et la même chose pour le destructeur. |
La classe fille hérite des constructeurs/destructeurs de la classe parente. En revanche si tu surcharges l'un des constructeurs, il faut appeler celui de la classe parente explicitement.
Encore une fois, je remets le lien que j'ai déjà posté : http://cplusplus.com/doc/tutorial/inheritance.html
Il y a des exemples, et c'est très bien expliqué.
Pour le deuxième point : on ne peut pas définir de classe constante, il n'y a que les variables/fonctions/méthodes/instances qui peuvent l'être. Par contre, "const" est le mot-clef le plus bordélique qui soit en C et en C++.
Marsh Posté le 12-01-2009 à 00:02:35
Elmoricq a écrit : Par contre, "const" est le mot-clef le plus bordélique qui soit en C et en C++. |
Pourquoi?
Marsh Posté le 12-01-2009 à 00:35:13
Elmoricq a écrit : |
pourquoi on doit le faire? on peut pas se contenter d'appeler le constructeur de la classe fille
Marsh Posté le 12-01-2009 à 13:37:59
Elmoricq a écrit : Pour le deuxième point : on ne peut pas définir de classe constante, il n'y a que les variables/fonctions/méthodes/instances qui peuvent l'être. Par contre, "const" est le mot-clef le plus bordélique qui soit en C et en C++. |
static etait mon candidat a moi pour ce titre.
Marsh Posté le 12-01-2009 à 13:41:56
sarainformatique a écrit : |
Visiblement, tu n'as pas lu le lien que j'ai mis. Deux fois que je te le mets, et où tout est absolument expliqué.
Parce que c'est dans le constructeur de la classe fille que tu vas appeler, ou non, celui de la classe mère, en suivant une syntaxe particulière tant qu'à faire. Et ce seulement si tu surcharges dans la classe fille un constructeur de la classe parente.
Faut que je fasse quoi, que je te précise en plus que c'est le chapitre "What is inherited from the base class?" de la page, et que je te dise qu'il y a un exemple très clair sur le fonctionnement de la chose ?
Marsh Posté le 12-01-2009 à 13:48:50
ptitchep a écrit : |
Parce que dès que tu as des pointeurs à définir avec const, c'est tout de suite le bordel pour savoir ce qui doit être constant.
char const * et char * const ne signifient pas la même chose, et je trouve que c'est le bordel.
Un Programmeur a écrit : static etait mon candidat a moi pour ce titre. |
Ah c'est clair que "static" est pas mal non plus dans le genre, mais surtout parce que c'est le mot-clef fourre-tout.
Disons que contrairement à const y a jamais de problème de syntaxe, juste de sémantique en fonction de l'objet qualifié.
Du coup il me pose moins de problème que const.
Marsh Posté le 12-01-2009 à 13:54:32
Elmoricq a écrit : |
Il suffit de ne jamais mettre const en premier (ce que tu fais ici). Alors const qualifie toujours ce qu'il suit immediatement:
char const* -> pointeur vers char constant
char *const -> pointeur constant vers char
Marsh Posté le 12-01-2009 à 13:55:15
Elmoricq a écrit : |
Oui mais avec google pas loin pour vérifier on finit par s'en sortir assez vite je trouve quand même.
Je vote plus pour static qui peut avoir carrément un sens différent.
Marsh Posté le 12-01-2009 à 13:57:55
Un Programmeur a écrit : |
Je sais bien, mais ce mot-clef m'a plusieurs fois traumatisé, et du coup c'est celui que je déteste le plus. Alors que static ne m'ennuie pas plus que ça.
Marsh Posté le 13-01-2009 à 22:55:47
Un Programmeur a écrit : |
Il y a aussi les classes const, les méthodes const, et si on a le malheur de mal définir une API, les utilisateurs sont obligés de faire du const_cast, c'est bien pourri.
C'est tellement pourri que le remplacement de const C++ par des équivalents clairs et non ambigüs en D est probablement le sujet de discussion le plus débattu, donnant lieu à des centaines de messages entre spécialistes sur le forum de discussions.
Marsh Posté le 14-01-2009 à 11:21:00
el muchacho a écrit : |
ouasi enfin, les mecs aussi, faut lire les specs quoi
Si les gars savent coder propre avec const, on y peut rien.
Faire du const_cast c'ets montré qu'on a rien compris au film
Marsh Posté le 15-01-2009 à 08:56:53
el muchacho a écrit : |
Il fait trop froid, cassez donc ce thermomètre ;-)
Marsh Posté le 15-01-2009 à 11:07:10
Un Programmeur a écrit : |
Je note cette métaphore dans mon calepin
Marsh Posté le 11-01-2009 à 07:19:43
Comment l'héritage peut avoir des conséquences sur les appels de constructeurs et destructeurs?
Aussi c'est quoi un objet const?
enfin pourquoi Chaque instance a son propre jeu de membres statiques?
Merci