OVH Cloud OVH Cloud

Newbies en C++ !

437 réponses
Avatar
Fuxy
Bonsoir à tous,


Voilà, il y a encore 1 mois, j'étais sous Windoz XP et je "bidouillais"
en VisualBasic 6.0

Depuis je suis passé sous Linux Suse 9.1 et je souhaiterais continuer à
"bidouiller", je ne cherche pas à développer des applications énormes,
mais juste des petits trucs pour m'amuser.

J'ai vu que sous Linux, le C++ avait l'air très répendu, j'ai donc
installé KDevelop qui permet de programmer en C++.

Et voilà, j'en suis à ce stade, j'ai acheté un bouquin sur le C++, j'en
suis à la page 10 ! et je me dis que ça a l'air un peu compliqué ...

Pouvez vous me conseiller ? est ce que le C++ est un bon choix pour moi
qui n'y connait rien ?

Merci pour votre aide.

A Bientot

--
Mail envoyé depuis Thunderbird
Sous Linux Suse 9.1 Pro

10 réponses

Avatar
Richard Delorme
wrote:
Alexandre Bacquart wrote in message
news:<411936aa$0$3157$...

Attention. On parle ici de Basic. Non des évolutions ultérieur. La Basic
n'a pas de véritable notion de fonction, ni des structures de données.
Et ses structures de contrôle sont extrèmement limitées. C'est pourquoi
les maîtres l'ont condamné si fortements.


Pourquoi ? Quand on parle de C++, on ne parle bien de la dernière
version, pas de C with classes. Le BASIC sans numéros de ligne, avec des
fonctions et des structures de contrôle est apparu au milieu des années
1970 et est standardisé depuis longtemps (ANSI Standard for Full BASIC
(X3.113-1987), ISO Standard for Full BASIC (ISO/IEC 10279:1991)).

D'après ce que j'ai entendu, Visual Basic n'a du Basic que le nom. Je ne
le connais pas. Je ne le juge donc pas. Sauf pour les deux grands
défauts que je le connais -- le nom (il faut éviter le Basic à tout prix
si on veut apprendre à programmer), et la manque de portabilité (je
travaille surtout sur des machines Unix). Pour quelqu'un qui veut
simplement bidouiller, je ne sais pas si ce sont des critiques
importantes. (S'il espère un jour aussi pouvoir bidouiller sur un Mac ou
sous Linux, la manque de portabilité EST un défaut à prendre en compte.)


Il existe des interpréteurs et des compilateurs de BASIC pour Mac et
Linux, certains soit-disant compatibles avec Visual Basic.

--
Richard

Avatar
kanze
"PurL" wrote in message
news:<cfa57b$nqj$...

Il y a au moins un bon conseil à donner : s'il ne parle pas de
(std::)vector<> et (std::)string dès le départ, et longtemps avant
d'aborder la notion de pointeur, il est totalement inadapté à un
débutant.


On est obligé d'utiliser la stl pour faire du C++ ?


Pas plus qu'on n'est obligé à utiliser ++.

Si tu veux incrémenter une variable, en C++, il existe trois alternatifs :

x = x + 1 ;
x += 1 ;
++ x ;

Si tu as besoin d'un tableau, il existe trois alternatifs :

int a[ 10 ] ;
int* a = malloc( 10 * sizeof( int ) ) ; if ( a == NULL ) ...
std::vector< int > a( 10 ) ;

Dans les deux cas, toutes les trois solutions sont du C++ « correct ».
Dans les deux cas, en revanche, seulement la dernière solution est
idiomatique -- est vraiement « C++ ». Et si tu enseignes le C++, c'est
évident que c'est la dernière solution qu'il faut enseigner d'abord,
comme étant la façon « naturelle » de faire la chose en C++.

--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
kanze
"Alain Naigeon" wrote in message
news:<4118dbb5$0$32073$...
"Fabien LE LEZ" a écrit dans le message news:

On Tue, 10 Aug 2004 13:41:55 +0200, "PurL" :

Moi je distingue deux choses :
- Apprendre le C++ avec les concept de la POO
- Apprendre l'utilisation d'une bibliothèque : MFC, VCL, STL, ...


Certes. Mais apprendre un langage sans jamais parler de tableau ni
de chaîne de caractères, ça risque d'être chaud, non ? Ou alors, tu
apprends en même temps un langage et une bibliothèque propriétaire.
AMHA, c'est une méthode peu pertinente -- mieux vaut apprendre les
bases du langage (et string et vector<> en font partie) avant de
commencer à attaquer des extensions propriétaires.


Au risque de me répéter : si ces extensions existent, c'est parce que
les "experts" ont trop longtemps rechigné à pondre leur propre
extension, autrement dit ils ont eu l'attitude que tu reproches en
t'abrittant derrière leur autorité.


Si c'est extensions existent, c'est bien parce qu'on a trop attendu à
avoir une norme avec un tableau et une chaîne de caractères normés. Et
que tous les experts, depuis belle lurette, sont d'accord qu'il vaut
mieux utiliser une bonne classe qu'un char[].

Ça, c'est l'histoire. Aussi, je crois qu'il a existé de meilleurs
tableaux que std::vector, et je suis sûr qu'il a existé de meilleurs
chaînes de caractères que std::string. MAIS... Aujourd'hui, la lacune
est bien comblée. On a une norme (depuis plus de cinq ans déjà), et
cette norme définit un tableau (std::vector) et une chaîne de caractères
(std::string). Ils sont ce qu'ils sont, mais ils font partie integrante
du langage C++. Si tu vas enseigner comment déclarer un tableau en C++,
il n'y a qu'une seule solution : std::vector.

--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34



Avatar
Fabien LE LEZ
On 11 Aug 2004 02:44:10 -0700, (Dug):

Note que je suis toujours à la recherche d'un livre sur le C++ en
français! :)


Je ne suis pas sûr que ça existe.
De toutes façons, savoir lire l'anglais technique est un prérequis
pour pas mal de domaines de l'informatique (et autres), dont la
programmation. Mais heureusement, c'est plus facile de lire un bouquin
de C++ en anglais que comprendre ce que dit un Texan.


--
;-)

Avatar
Jean-Marc Bourguet
writes:

Si tu as besoin d'un tableau, il existe trois alternatifs :

int a[ 10 ] ;
int* a = malloc( 10 * sizeof( int ) ) ; if ( a == NULL ) ...
int* a = new int[10];

std::vector< int > a( 10 ) ;


A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
Jean-Marc Bourguet
Richard Delorme writes:

wrote:
Alexandre Bacquart wrote in message
news:<411936aa$0$3157$...

Attention. On parle ici de Basic. Non des évolutions ultérieur. La Basic
n'a pas de véritable notion de fonction, ni des structures de données.
Et ses structures de contrôle sont extrèmement limitées. C'est pourquoi
les maîtres l'ont condamné si fortements.


Pourquoi ? Quand on parle de C++, on ne parle bien de la dernière version,
pas de C with classes. Le BASIC sans numéros de ligne, avec des fonctions
et des structures de contrôle est apparu au milieu des années 1970 et est
standardisé depuis longtemps (ANSI Standard for Full BASIC (X3.113-1987),
ISO Standard for Full BASIC (ISO/IEC 10279:1991)).


Est-ce que ces normes ont un rapport avec la realite des
implementations ou bien est-ce que c'est comme les normes pour Pascal,
qui venues trop tard n'ont guere eu d'effet sur les implementations
(la derniere fois que j'ai regarde, seul GNU essayait de
l'implementer).

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org


Avatar
Laurent Deniau
Jean-Marc Bourguet wrote:
writes:


Laurent Deniau wrote in message
news:<cfai51$po6$...

Fabien LE LEZ wrote:

On Tue, 10 Aug 2004 14:54:10 +0200, Fabien LE LEZ
:

Est-ce que C gère correctement "const" ?


Note : il s'agit bien d'une question. J'ai vraiment de grosses
lacunes en C (ou, pour prendre le problème à l'envers, j'ai quelques
vagues connaissances en C ;-) ).


Pour repondre, il faudrait d'abord definir ce que l'on attend de const
dans le language et que signifie gerer "correctement" const. Hormis
ces deux considerations, const en C est plus simple et plus logique
(pas de cas particulier de sa semantique), mais ca ne repond en rien a
la question :-).


Comme j'ai déjà dit, les deux langages sont prèsqu'identique dans leur
traitement de const, dans les parties communes. (En fait, de tête, je
crois qu'ils y sont rigueureusement identiques. Et que c'était en tout
cas l'intention du comité de normalisation C++ et avant de Stroustrup
qu'ils le soient.) En revanche :



De memoire, les regles pour const dans des pointeurs vers pointeurs
sont moins strictes (mais aussi sures) en C++ qu'en C.


Et const a une semantique en C++ qui change en fonction de son
utilisation. De memoire:

- const sur une variable globale signifie static const. BS recommande
d'ailleurs de les mettres dans le header.
- const sur une reference locale cree un temporaire (interdit sur un
non-const).
- const sur une reference temporaire modifie sa duree de vie.
- const int se comporte comme un enum a l'exterieur d'une classe (mais
pas dedans).
- const est ignore par l'overloading pour les arguments autres que this
s'il est au niveau le plus externe de la specification du type mais il
l'est pour les autres niveaux.
- j'en oublie surement...

et tout ca en plus de la semantique du C ou const signifie simplement
read-only et c'est tout.

a+, ld.





Avatar
Mario
Bonjour Fabien,

Pour ce qui est de la magie, ce thread n'est surement pas magique, en tout
cas je ne crois pas que c'est magique pour Fuxy, l'initiateur de cette
discussion.

Pour ce qui est de la page, j'utilise depuis 25 ans des références plus
reconnues. Jettes un coup d'oeil sur les autres groupes plus achalandés.

Lachez-pas :-)

--
Mario


"Fabien LE LEZ" a écrit dans le message de
news:
On Tue, 10 Aug 2004 19:47:50 -0400, "Mario" :

Wow! Vive la francophonie! Quel discussion, que de mots.


C'est ça la magie d'Usenet. Et encore, t'as jamais été voir fufe
(fr.usenet.forums.evolution) ;-)

PS : merci de lire l'intégralité de la page
<http://www.giromini.org/usenet-fr/repondre.html>.


--
;-)



Avatar
Alain Naigeon
"Fabien LE LEZ" a écrit dans le message news:

On Tue, 10 Aug 2004 20:58:06 +0200, Loïc Joly
:

[La STL]
On peut maintenant décider de ne pas l'utiliser sur un projet
spécifique


J'ajouterais que pour décider de ne pas utiliser la STL, il faut
commencer par la connaître.


Ca, mon vieux, ça ressemble à un boniment d'astrologue.

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France


Avatar
Fabien LE LEZ
On Wed, 11 Aug 2004 10:49:21 -0400, "Mario" :

Pour ce qui est de la page, j'utilise depuis 25 ans des références plus
reconnues.


*plonk*