Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
997 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5
Auteur Sujet :

[C++ débutant] Tester si un Objet est d'un type précis ?

n°1314521
skelter
Posté le 27-02-2006 à 16:25:18  profilanswer
 

Reprise du message précédent :
le prof connai pas iostream, il connais que iostream.h et string.h

mood
Publicité
Posté le 27-02-2006 à 16:25:18  profilanswer
 

n°1314525
chrisbk
-
Posté le 27-02-2006 à 16:26:04  profilanswer
 

ouais mais meme dans iostream.h doit bien y avoir std::ostream non ?
 
non ? [:fande--]

n°1314527
Joel F
Real men use unique_ptr
Posté le 27-02-2006 à 16:26:37  profilanswer
 

skelter a écrit :

le prof connai pas iostream, il connais que iostream.h et string.h


c'est un con fini, un incompetent et certainement un planqué :o
iostream.h ca fais 5 ans que c'est deprécié BORDEL
 
barer toi de cette ecole de merde !!! :fou:

n°1314529
chrisbk
-
Posté le 27-02-2006 à 16:27:18  profilanswer
 

Joel F a écrit :

c'est un con fini, un incompetent et certainement un planqué :o
iostream.h ca fais 5 ans que c'est deprécié BORDEL
 
barer toi de cette ecole de merde !!! :fou:


 
 
ALLONS ENFANT DE LA PATRIIIIIEEEEUHHHHHHH
 
 
restons calme quand meme [:el g]
 
(sinon les bons profs de c++ j'ai pas l'impression que ca court les rues)


Message édité par chrisbk le 27-02-2006 à 16:27:42
n°1314531
Joel F
Real men use unique_ptr
Posté le 27-02-2006 à 16:28:13  profilanswer
 

excuse mais bon [:dawa] apprendre el C++ avec des char* et iostream.h, c'est faire vraiment preuve de jemenfoutisme voire d'ignorance crasse :o

n°1314532
chrisbk
-
Posté le 27-02-2006 à 16:29:01  profilanswer
 

Joel F a écrit :

excuse mais bon [:dawa] apprendre el C++ avec des char* et iostream.h, c'est faire vraiment preuve de jemenfoutisme voire d'ignorance crasse :o


 
oué bin je sais (surtout les char *), mais bon, on va pas le bruler sur la place publique non plus.

n°1314533
Joel F
Real men use unique_ptr
Posté le 27-02-2006 à 16:29:40  profilanswer
 
n°1314534
ParadoX
Posté le 27-02-2006 à 16:30:05  profilanswer
 

chrisbk a écrit :

ouais mais meme dans iostream.h doit bien y avoir std::ostream non ?
 
non ? [:fande--]


 
Non  :sweat:


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314535
chrisbk
-
Posté le 27-02-2006 à 16:30:31  profilanswer
 


sinon jsais pas si tu vois, mais y sont encore sous VS6 qui va quand meme lentement sur ses 10 ans

n°1314536
chrisbk
-
Posté le 27-02-2006 à 16:31:03  profilanswer
 


 
et ostream ? (sans le std) ? enfin, qqchose quoi [:el g]

mood
Publicité
Posté le 27-02-2006 à 16:31:03  profilanswer
 

n°1314537
Joel F
Real men use unique_ptr
Posté le 27-02-2006 à 16:31:12  profilanswer
 

moui, ca me rappelle certains labo qui preferent payer des licenses pour VC7 que d'utiliser gcc :o

n°1314539
chrisbk
-
Posté le 27-02-2006 à 16:32:02  profilanswer
 

Joel F a écrit :

moui, ca me rappelle certains labo qui preferent payer des licenses pour VC7 que d'utiliser gcc :o


 
le 7.1 est bien [:romf] avant c'est pas terribeule niveau respect (l'ide par contre est pas mal). T'as qu'a bricoler pour utiliser gcc a la place ? [:god]

n°1314540
ParadoX
Posté le 27-02-2006 à 16:32:25  profilanswer
 

chrisbk a écrit :

et ostream ? (sans le std) ? enfin, qqchose quoi [:el g]


 
Ahh oui c'est bon. Bon par contre, j'ai pas compris comment mon Print() de ma Forme ou de mon groupe doit utiliser cette classe [:cupra]


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314542
chrisbk
-
Posté le 27-02-2006 à 16:33:40  profilanswer
 

[:pingouino] afficheNiaiserie. c'est assez mal fait, mais hein ? [:god] sinon tu peux surcharger <<  
 

n°1314550
ParadoX
Posté le 27-02-2006 à 16:39:22  profilanswer
 

Jcomprends pas :sweat:  
Groupe:: Print() et Forme:: Print() ne prennent pas d'arguments, ni rien ..  
 

Code :
  1. void Groupe::Print() const
  2. {
  3. cout << this->nom << endl;
  4. }


 
Jsuis nul :sweat:

Message cité 1 fois
Message édité par ParadoX le 27-02-2006 à 16:39:41

---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314557
franceso
Posté le 27-02-2006 à 16:45:17  profilanswer
 

chrisbk a écrit :

sinon tu peux surcharger <<


par exemple un truc du genre (avec des templates pour ne pas t'embêter à redéfinir ton opérateur pour tous les types) :

Code :
  1. template<class T>
  2. Formater& Formater::operator<<( T t )
  3. {
  4.   for( int i=0 ; i<niveauIndentation ; ++i )
  5.     out << "\t";
  6.   out << t;
  7.   return *this;
  8. }


n°1314561
Joel F
Real men use unique_ptr
Posté le 27-02-2006 à 16:47:03  profilanswer
 

chrisbk a écrit :

le 7.1 est bien [:romf] avant c'est pas terribeule niveau respect (l'ide par contre est pas mal). T'as qu'a bricoler pour utiliser gcc a la place ? [:god]


Eclipse rool3z

n°1314567
chrisbk
-
Posté le 27-02-2006 à 16:49:16  profilanswer
 

ParadoX a écrit :

Jcomprends pas :sweat:  
Groupe:: Print() et Forme:: Print() ne prennent pas d'arguments, ni rien ..  


 
bin maitnenant ils en prennent un [:petrus75]
 

Joel F a écrit :

Eclipse rool3z


 
bof [:petrus75]

n°1314583
ParadoX
Posté le 27-02-2006 à 17:03:21  profilanswer
 

Bon, j'arrive pas à faire marcher ce truc :(
En plus, si je change la signatude du Print() du groupe, il n'est plus reconnu comme surcharge du print() virtuel de Objet :/
 
J'abandonne  :cry:


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314584
chrisbk
-
Posté le 27-02-2006 à 17:04:19  profilanswer
 

bondieu mais reflechis un peu aussi [:pingouino] fo que tu changes toutes tes signatures de print() pour que ca colle [:pingouino] c'est quand meme pas la mer a boire crédvindieu

n°1314585
ParadoX
Posté le 27-02-2006 à 17:08:21  profilanswer
 

bah oui jmen doute bien, mais ensuite je lui donne quoi comme Formater, à Print() ? :|
 
Puis je ne comprends pas le constructeur:
Formater::Formater(ostream &pOut) : out(pOut), niveauIndentation(0) {};
 
:/


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314677
el muchach​o
Comfortably Numb
Posté le 27-02-2006 à 18:28:35  profilanswer
 

C'est quoi que tu ne comprends pas dans ce constructeur ?
 
Sinon, puisque tu as le droit d'utiliser char * et string.h, je te suggère de te créer une petite classe string à toi, que tu appelles, heuu... String :D.
C'est pas bien compliqué. Elle ne sera certes pas aussi performante que std::string, mais bien assez pour ton projet, et c'est un bon petit exercice pas très difficile (du moins quand on ne cherche pas trop à chiader). Et c'est pas interdit par ton prof (sauf s'il est con comme un balai).  :p  
Une fois que tu l'as pondue et qu'elle marche (c'àd sans plantages ni de fuites mémoire), tu nous refiles l'interface de ta classe et on peut l'utiliser pour le reste du code sans se faire chier.
Ta classe String devrait au moins fournir :
 - constructeur  : String truc("blabla" );
 - constructeur de copie
 - opérateur d'assignation =
 - opérateur d'égalité ==
 - opérateur [] d'accès à un caractère d'indice donné
 - opérateurs / méthodes de concaténation
 - méthode de construction d'une sous-chaine
 - méthode longueur
 - méthode d'affichage, ou au moins, de construction de chaîne C à afficher
 - destructeur

Message cité 1 fois
Message édité par el muchacho le 27-02-2006 à 18:41:37
n°1314686
ParadoX
Posté le 27-02-2006 à 18:41:46  profilanswer
 

el muchacho a écrit :

C'est quoi que tu ne comprends pas dans ce constructeur ?
 
Sinon, puisque tu as le droit d'utiliser char * et string.h, je te suggère de te créer une petite classe string à toi, que tu appelles, heuu... String :D.
C'est pas bien compliqué. Elle ne sera certes pas aussi performante que std::string, mais bien assez pour ton projet, et c'est un bon petit exercice pas très difficile (du moins quand on ne cherche pas trop à chiader). Et c'est pas interdit par ton prof (sauf s'il est con comme un balai).  :p  
Une fois que tu l'as pondue et qu'elle marche (c'àd sans plantages ni de fuites mémoire), tu nous refiles l'interface de ta classe et on peut l'utiliser pour le reste du code sans se faire chier.
Ta classe String devrait au moins fournir :
 - constructeur  : String truc("blabla" );
 - constructeur de copie
 - opérateur d'assignation =
 - opérateur d'égalité ==
 - opérateur []
 - opérateurs / méthodes de concaténation
 - méthode longueur
 - méthode d'affichage
 - destructeur


 
Hm pkoi pas, m'enfin pour ce que j'utilise comme char *, c'est juste pour des noms :D
Pour le contructeur, bah ... le ": out(pOut), niveauIndentation(0) {}"
 
"out" est le constructeur d'une classe supérieur ? :??: Et comment fonctionne l'initialisation à 0 du niveauIndentation ?  :sweat:  
 


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314691
el muchach​o
Comfortably Numb
Posté le 27-02-2006 à 18:47:55  profilanswer
 

Non, cette syntaxe permet d'initialiser les données membres de ta classe.  
Le constructeur initialise le membre out avec la valeur passée en param pOut. Et niveauIndentation est un entier qui compte l'indentation, et qui doit naturellement être initialisé à 0 avant usage.
T'as dormi, ou bien, le prof ne vous a réellement pas appris cela ?

n°1314692
ParadoX
Posté le 27-02-2006 à 18:48:55  profilanswer
 

Je ne connais que cette syntaxe pour les constructeurs:
 

Code :
  1. Formater::Formater(ostream &pOut)
  2. {
  3. out = pOut;
  4. niveauIndentation = 0;
  5. }


 
Par contre, la, le compilateur ne veut pas :/


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314694
el muchach​o
Comfortably Numb
Posté le 27-02-2006 à 18:51:28  profilanswer
 

ParadoX a écrit :

Je ne connais que cette syntaxe pour les constructeurs:
 

Code :
  1. Formater::Formater(ostream &pOut)
  2. {
  3. out = pOut;
  4. niveauIndentation = 0;
  5. }


 
Par contre, la, le compilateur ne veut pas :/


Il gueule sur quoi ? ostream  ? out = p0ut ?

n°1314697
ParadoX
Posté le 27-02-2006 à 18:53:52  profilanswer
 

Jep,  
error C2758: 'out' : must be initialized in constructor base/member initializer list
error C2248: '=' : cannot access protected member declared in class 'ostream'
 


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314757
++fab
victime du syndrome IH
Posté le 27-02-2006 à 19:51:33  profilanswer
 

ParadoX a écrit :

Jep,  
error C2758: 'out' : must be initialized in constructor base/member initializer list
error C2248: '=' : cannot access protected member declared in class 'ostream'


 
1) Formater contient une référence comme donnée membre, il faut donc qu'elle soit initilisé dans la liste d'initialisation -- c.a.d avant d'entrer dans le corp du constructeur.
 
2) l'assignation de stream n'est pas défini. Sur ton implémentation, elle est déclarée protégée.

n°1314764
slash33
Posté le 27-02-2006 à 19:55:59  profilanswer
 

Louée soit la liste d'initialisation. ;)

n°1314806
ParadoX
Posté le 27-02-2006 à 20:52:33  profilanswer
 

Donc on ne peut pas passer par un constructeur 'normal' ? :heink:  
Bon, sinon, comment j'utilise mes fonctions Print() maintenant ? :o Jveux bien leur donner un Formater& en param, mais je l'initialise comment ?


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314824
chrisbk
-
Posté le 27-02-2006 à 21:19:50  profilanswer
 

Formater machin(cout);
 
unobjet->print(machin);

n°1314842
ParadoX
Posté le 27-02-2006 à 21:46:58  profilanswer
 

Hm merci ... mais maintenant, j'ai le meme probleme qu'au début: quand est-ce que j'incrémente l'indentation ? Il faut que je le fasse à chaque nouveau groupe détecté, puis revenir quand le listing de ce groupe est terminé ... mais le compteur d'indentation n'est pas commun aux groupes et aux objets !


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314844
chrisbk
-
Posté le 27-02-2006 à 21:48:03  profilanswer
 

[:sisicaivrai]
 
ton groupe, la, quand il va se dessiner, il augmente l'indentation, appelle Print sur chacun de ses objets (en leur refilant le formateur qu'il a recu) et quand tout ca c'est fini il rediminue l'indentation

n°1314860
ParadoX
Posté le 27-02-2006 à 22:02:30  profilanswer
 

Hm ok j'ai foutu la déclaration du formater ds le main() au lieu de afficher !
Jvais tester tout ça, merci :)


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314867
ParadoX
Posté le 27-02-2006 à 22:11:11  profilanswer
 

Merci pour tout les gars, ça marche :love:  
Fallait trouver, tout de même  [:mlc]  
 
Vielen Dank :)
 
EDIT:
http://orgasm.free.fr/hfr/c++new.PNG


Message édité par ParadoX le 27-02-2006 à 22:21:42

---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314907
chrisbk
-
Posté le 27-02-2006 à 23:25:11  profilanswer
 

tu vois que c'est tout con [:el g]
 
tu postes ton code qu'on rigole regarde ? :d

n°1314910
ParadoX
Posté le 27-02-2006 à 23:28:12  profilanswer
 

Tellement je te merde  [:ddr555]  
J'ai pas fini, d'abord [:thalis]  
 
Jte montre le code que si tu m'aides à surcharger ce putain d'operator << que j'arrive pas à surcharger:
 
J'ai une struct coordonnee:
 

Code :
  1. struct coordonnee
  2. {
  3. double x;
  4. double y;
  5. };


 
et j'aimerais pouvoir faire:
 

Code :
  1. cout << "Coordonnee 1 ........... " << this->coord1 << endl;


 
Si je vois une fois comment c'est fait, j'y arriverais peut-être, en tout cas la maintenant ça marche pas :o


Message édité par ParadoX le 27-02-2006 à 23:28:50

---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314912
chrisbk
-
Posté le 27-02-2006 à 23:29:25  profilanswer
 

bin montre ton code jean paul

n°1314915
ParadoX
Posté le 27-02-2006 à 23:30:22  profilanswer
 
n°1314924
ParadoX
Posté le 27-02-2006 à 23:35:08  profilanswer
 


objet.h

Code :
  1. void operator << (const coordonnee);


 
objet.cpp

Code :
  1. void Objet::operator << (const coordonnee maCoord)
  2. {
  3. cout << "(" << maCoord.x << "," << maCoord.y << " )";
  4. }


 
mais ... j'arrive pas à l'utiliser dans ma classe triangle, par ex ... ça s'hérite pas, ou comment je lui précise que la surcharge doit aussi pouvoir marcher dans un triangle ? Parce que la, j'ai ça : " error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'const struct coordonnee' (or there is no acceptable conversion)"


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1314925
slash33
Posté le 27-02-2006 à 23:35:53  profilanswer
 

ParadoX a écrit :

J'ai rien dit, jsuis trop con :o


Combien de fois s'est on dit ça... à propos de nous mêmes ?  :whistle:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5

Aller à :
Ajouter une réponse
 

Sujets relatifs
ereg et donnée type coordonnées[debutant C++] [Urgent] Tableau 2D nombre de colonne inconnu
[débutant] char* + char* = concaténertester l'existence d'une réalisation d'une méthode 'pure virtual'
le type autoincremente sous sql 2000server????[URGENT] [C++ débutant] problème avec tableau a plusieurs dimensions
type date et autoincrementer ss sql server 2000[VBScript] tester un CRC d'un fichier VBS éxécuté
[!PERL] recuperation de données (pour débutant)[C++ débutant] Différence entre un New et un "Type nom" ?
Plus de sujets relatifs à : [C++ débutant] Tester si un Objet est d'un type précis ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR