1

yop,

Je suis en train de faire des hello world en C++. J'utlise Code::Blocks et GCC sous Debian, ou C::B + MinGW + GCC sous XP.
J'ai créé un projet avec un seul source, qui fait un hello world simplissime.

Un truc m'étonne.
Quand je fais :
#include <iostream>
using namespace std;

int main()
{
  string Hello("Hello world!");
  cout << Hello << endl ;
  return 0;
}


Ce que je ne comprends pas : Pourquoi string est reconnu, alors que je n'ai pas inclu <string> ? On me dit qu'il faut le faire dans les tutos que je vois ?
The C++ language library provides support for strings through the standard string class. This is not a
fundamental type, but it behaves in a similar way as fundamental types do in its most basic usage.

A first difference with fundamental data types is that in order to declare and use objects (variables) of this type we
need to include an additional header file in our source code: <string> and have access to the std namespace(which we already had in all our previous programs thanks to the using namespace statement).

Le tuto est-il trop simpliste ?
Si j'ai à peu près compris comment ça marche (de loin hein, j'ai 0 prétention), je dois utiliser un constructeur surchargé de la classe string quand je fais ma déclaration/affectation ? (arrêtez-moi si j'ai dit n'importe quoi surtout grin) Si donc j'en utilise des éléments (une méthode ici ?), comment se fait-il que je puisse ne pas inclure le header ?

(ps -> je suis en train d'acheter un bouquin, donc logiquement, je devrais, dans quelques {semaines smile|mois neutral|annéescry} éviter ce genre de questions sûrement nioubissimes grin)

2

<iostream> inclut <string>

3

ayayaye folco se met au cpp grin

(ne regarde pas comment c'est compilé tu vas choper une crise d'apoplexie ^^)

oublie pas que même en c++ tu peux toujours inclure <stdio.h> et utiliser le bon vieux printf love

4

Jyaif (./2) :
<iostream> inclut <string>

Merci smile
squalyl (./3) :
ayayaye folco se met au cpp biggrin.gif

fesses tongue
squalyl (./3) :
(ne regarde pas comment c'est compilé tu vas choper une crise d'apoplexie ^^)

J'ai trouvé comment voir l'assembleur, heureusement je connais pas le x86 grin
squalyl (./3) :
oublie pas que même en c++ tu peux toujours inclure et utiliser le bon vieux printf love.gif

J'essaye de pas avoir une approche C justement. wink

5

Folco (./4) :
J'essaye de pas avoir une approche C justement. wink.gif

Çay bien, ne te laisse pas corrompre embarrassed
(Sinon, si j'étais toi je ferais directement du JAVA ou équivalent)

6

PS : normalement, il vaut mieux éviter de faire un using namespace dans l'espace global, c'est mieux de cloisonner (typiquement tu peux déplacer ton using namespace std au début de ta fonction main)

7

Folco > À quand le C# ? grin
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

8

Wow les gars, du calme grin

Merci Pen^2 pour le tip happy

9

Folco (./4) :
J'ai trouvé comment voir l'assembleur, heureusement je connais pas le x86 biggrin.gif
Tu veux que je te traduise en 68k ?cheeky
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

10

perds pas de temps, suffit de lui trouver un m68k-g++ grin

11

Ah non, mais moi je fais des traductions artisanales, entièrement à la main, avec une méthode transmise de père en fils, c'est pas pareil hein ^^
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

12

ah d'accord t'as des JIT dans tes ascendants trilangue

13

Vala ^^
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

14

Zerosquare (./9) :
Tu veux que je te traduise en 68k ? mod.gif

Le but, c'est que je ne regarde pas pour me concentrer sur les concepts, arrête de me tenter t'es méchant trigni

Puis même si je voyais un bug dans le code 68k, pour trouver ce qu'il faudrait modifier de code C++ pour remettre ça d'aplomb, ça serait pas gagné grin

15

Folco (./14) :
Le but, c'est que je ne regarde pas pour me concentrer sur les concepts

=>²
Pen^2 (./5) :
si j'étais toi je ferais directement du JAVA ou équivalent)


16

Allons allons, pas de précipitation... Il a déjà fait un grand pas de l'ASM au C, puis un autre du C au C++...
Ne brusquons pas le sujet d'expérimentation Folco, un échec clinique serait vraiment dommage à ce stade de l'avancement des recherches.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

17

Oui mais pourquoi ? Déjà, je ne pars pas du principe qu'un langage soit en soit mieux qu'un autre, je préfère penser (du fond de mon inexpérience en la matière) qu'ils sont adaptés à ci ou ça.

Alors pourquoi Java plus que C++ ? J'aime l'idée, en utilisant par exemple Qt pour des applications desktop "ordinaires" (sans 3D, sans spécialisation quelconque) de pouvoir avoir du code compilé en natif.

Oui, pourquoi me proposes-tu Java ?

(cross -> merci Zerosquare, les manifestations d'amitié me font toujours chaud au cu coeur trioui grin)

18

Ben, la syntaxe du C++ suxe vraiment (àmha). À moins d'en faire h24, faut vraiment luter pour se souvenir de tout un tas de détails plus ou moins sordides (àmha aussi embarrassed)
En plus de ça, avec JAVA ou .NET, tu as accès à une bibliothèque standard _vraiment_ fournie, ça ne se limite pas à quelques conteneurs. Les messages d'erreurs sont compréhensibles par un humain. ETc, etc. C'est en vrac, sans ordre particulier. Il y a des IDE qui tiennent la route aussi (c'est horrible sous visual c++, jusqu'au moins 2008, la complétion ne marche qu'une fois sur dix, la recherche de la déclaration pas plus, etc)

(et pourtant j'aime bien le C, mais le C++, je n'ai jamais apprécié)

19

Puis bon, ça reste quand même un beau bâtard, le C++, hein (enfin, avis perso, pas la peine de démarrer le troll grin)
avatar

20

Oui, vu les tutos que j'ai déjà lu, j'en ai la très nette impression : en améliorant le C, ils ont réussi à faire pire, c'est un sacré tour de force faut avouer. ^^ Déjà que toutes la syntaxes n'est pas homogène en C, alors là j'ai cru voir qu'on atteignait des sommets. Je me suis dit : "je vais m'y faire, faut pas avoir peur, c'est que je connais pas encore". M'en fait je suis content que tu dises ça. grin

Et sinon, est-ce le seul argument en faveur du java ?

21

J'ai un peu complété smile

22

Nil (./19) :
Puis bon, ça reste quand même un beau bâtard, le C++, hein (enfin, avis perso, pas la peine de démarrer le troll grin)

Il suffit de voir les chaînes de caractères.
Dans le même programme, tu peux passer des char* aux std::string, au string unicode, etc couic

Franchement, le C++ est tout sauf un langage qui permet de se concentrer sur les concepts.

23

Merci. smile

Ce qui m'emmerde un peu en java, c'est que c'est un peu le mode kernel du PC avec une VM ^^ Perso ça me fait toujours un peu suer de l'installer, même si ok, c'est pas dramatique etc...
Mais pourrais-je avoir d'autres avis, confirmant ou infirmant celui de Pen^2 svp ? Le sujet m'intéresse. smile

24

Folco (./23) :
c'est un peu le mode kernel du PC

Eh oui, encore un avantage, tu vois ? trioui


PS : perso je préfère le JAVA au C# (je connais beaucoup moins le C#), mais c'est le même style : c'est utilisable.

25

Dans le genre troll mais rigolo, il y a la fameuse fausse interview du créateur du C++.
Enfin d'après lui, ça ne l'a pas fait marrer du tout cheeky
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

26

trilove (cross)

Mais attention Pen^2, si je pars sur le Java, ça signifie que tu prends un abonnement personnel et contraignant à toutes mes questions de noob. Demandes à PpHd, Kevin, Lionel et d'autres, ça a l'air de rien comme ça, mais c'est pas une sinécure. trinon

27

Ah, vas-y, prends l'abonnement ! Ca me permettra de me remettre au Java oui (je n'y ai pas touché depuis le JDK1.2, donc je pense que les questions de Folco me seront très utiles grin).
avatar

28

#peur2#
J'aurais mieux fait d'aller dormir, moi sad

29

Autres questions :

1. Est-il plus facile de faire la transitions Java->C++ ou C++->Java ?
2. Sur le marché de l'info, on est plus polyvalent avec lequel des deux ?

30

1 Le Java est plus agréable, donc je dirais que c'est plus facile de passer du C++ au Java.
2 Difficile à dire. Je pense que les nouveaux projets sont plus volontiers démarrés en java ou c#, mais d'un autre coté il y a tout l'existant pour le c++, alors...