pour le 1, rien de plus que ce qu'on pourrait penser
123
123
123
le pointeur retourné par c_str() reste valide tant qu'il n'est pas invalidé par une fonction modifiant la string d'origine ;)
Le deuxième cas est plus compliqué tu as d'ailleurs joué avec une variable globale pour éviter un bon gros warning de compilation (voir une erreur) (pour cet exemple); il t'affiche
A
B
pour ceux qui n'auraient pas compris la blague B(b) est interprété comme B b; une déclaration d'une variable b de type B. Mais bon c'est quoi ton langage préféré ? parce que des blagues de ce genre j'en ai en java, python, C, perl, bash...
si il avait déclaré une variable locale ou en tant que paramètre
voidfun(intb){B(b);}
Il aurait eu une joli erreur de compilation
plop2.cc:17:5: error: la déclaration de « B b » masque un paramètre
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: Je hais le C++
Posté par fearan . En réponse au journal Moi, expert C++, j'abandonne le C++. Évalué à 4.
pour le 1, rien de plus que ce qu'on pourrait penser
123
123
123
le pointeur retourné par c_str() reste valide tant qu'il n'est pas invalidé par une fonction modifiant la string d'origine ;)
Le deuxième cas est plus compliqué tu as d'ailleurs joué avec une variable globale pour éviter un bon gros warning de compilation (voir une erreur) (pour cet exemple); il t'affiche
A
B
pour ceux qui n'auraient pas compris la blague B(b) est interprété comme B b; une déclaration d'une variable b de type B. Mais bon c'est quoi ton langage préféré ? parce que des blagues de ce genre j'en ai en java, python, C, perl, bash...
si il avait déclaré une variable locale ou en tant que paramètre
Il aurait eu une joli erreur de compilation
plop2.cc:17:5: error: la déclaration de « B b » masque un paramètre
Il ne faut pas décorner les boeufs avant d'avoir semé le vent