Classe abstraite et operator<< - C++ - Programmation
Marsh Posté le 27-03-2005 à 01:19:03
Et si tu fais
Code :
|
Ca marche ? Pourquoi ?
Marsh Posté le 27-03-2005 à 03:11:47
Visual 5
tu sors d'hibernation ?
sinon pour l'histoire du virtual je crois qu'une fois suffit.
Marsh Posté le 27-03-2005 à 03:25:01
Le virus Scheme progresse
Marsh Posté le 27-03-2005 à 03:29:46
Tout d'abord merci pour tout
Sinon, vous savez pourquoi il faut que je passe par une variable ?
Marsh Posté le 27-03-2005 à 03:34:16
Oui c'est quand t'as des parentheses qui commencent a pousser à la place des poils !
Marsh Posté le 27-03-2005 à 03:36:24
ah, tiens, ça passe pas non plus avec std::endl...
pourtant, avec un ostringstream ça devrait passer, non ?
Marsh Posté le 27-03-2005 à 10:08:55
tu m'explique le coup de la fonction membre virtuelle pure privée ?
Marsh Posté le 27-03-2005 à 12:02:52
ReplyMarsh Posté le 27-03-2005 à 12:07:43
annadivx a écrit : |
Non, par contre, il y a des languages, comme le VB ( ) qui permettent de faire un :
With je |
* prend calmement la direction de la porte : =>[] *
annadivx a écrit :
|
Je vois pas trop à quoi sert le ostream ici, vu que rien n'oblige à priori d'écrire un log dans un fichier : on peut l'afficher directement à l'écran (dans une interface type SDL), ou dans des MsgBox (si jamais mon code arrive sous windows), etc.
annadivx a écrit :
|
Comme je le voyais partout, je pensais qu'il était compatible avec tous les streams de la stl...
annadivx a écrit :
|
C'est ici que je te repproche d'avoir à initialiser un journal par type (un pour les int, un pour les float), alors que le but serait de pouvoir écrire dedans comme dans cerr ou dans cout
annadivx a écrit :
|
On m'a dit que dormir la nuit contribuait à avoir une vie sociale... Maie je te dirais si c'est vrai : pour l'instant je rencontre plus de monde sur internet que irl...
Marsh Posté le 27-03-2005 à 12:19:24
sinon, avec le code suivant :
Code :
|
j'ai toujours une erreur :
Citation : |
Si on m'avouait que 1 n'est pas un int...
Mais en fait, je viens de m'apercevoir que je demande une référence vers T.
Or je passe une référence non constante vers une constante...
Effectivement, avec ça, ça marche :
Code :
|
Désolé du dérangement...
Pour la source du journal, allez voir sur http://htkc.org/journal.cc
Marsh Posté le 27-03-2005 à 16:49:27
ReplyMarsh Posté le 28-03-2005 à 10:02:43
pour rebondir sur la remarque dand le code de annadivx, ej citerais mon défuitn prof de C++ :
"virtual un jour, virtual toujours "
Marsh Posté le 28-03-2005 à 11:21:54
Joel F a écrit : pour rebondir sur la remarque dand le code de annadivx, ej citerais mon défuitn prof de C++ : |
Même dans le constructeur ?
Marsh Posté le 28-03-2005 à 11:54:39
annadivx a écrit : ça n'a pas de signification pour les constructeurs... |
Je n'ai pas dit: "Même le constructeur ?".
J'ai dit: "Même dans le constructeur ?".
Marsh Posté le 28-03-2005 à 12:11:56
annadivx a écrit : Je ne vois pas ce qui peut être "virtuel un jours, virtuel toujours..." dans le constructeur... ? |
C'est quoi qu'on construit ? Une poule ou un oeuf ?
Code :
|
Marsh Posté le 28-03-2005 à 12:34:59
annadivx a écrit : Je ne vois rien de virtuel la dedans... |
Tu m'inquiètes là. Tu vois bien le mot "virtual" devant la méthode Decrit() ?
Si oui, on pourrait naïvement s'attendre à ce que le compilo aille piocher la bonne méthode Decrit (en utilisant de la magie ou une vtable, au choix) et nous affiche donc fièrement que l'objet pense qu'il est une Poule ?
C'était là le but de mon commentaire taquin (que JoelF aura compris): une méthode virtuelle un jour, est virtuelle toujours, mais seulement après construction.
Marsh Posté le 28-03-2005 à 14:31:40
annadivx a écrit : je suis chez moi, je fais ce que je veux... |
Marsh Posté le 27-03-2005 à 00:33:05
Bonjour,
j'ai une classe abstraite Journal :
et une classe qui l'utilise :
Quand je teste simplement :
j'ai l'erreur suivante :
journal.cc: In function `int main()':
journal.cc:57: error: no match for 'operator<<' in 'log << 1'
journal.cc:17: error: candidates are: Journal& Journal:: operator<<(T& ) [with T = int]
Quelqu'un saurait-il où est le problème ? 1 ne serait-il pas un entier ?
Quand j'essaye de faire un cast :
j'ai la même erreur...
merci pour toute aide
madprog
Message édité par madprog le 27-03-2005 à 00:35:56