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
Sayajin
"Sayajin" a écrit dans le message de
news:cfji8k$v80$

Même celui de Claude Delannoy ne conviens pas ? Pourtant il est cité ici
(http://membres.lycos.fr/preludesoftware/?page=books&lang=cpp) parmis
d'autres livres anglais qui sont vos références :

a.. Programmer en langage C++, 5e édition, Claude Delannoy,
Eyrolles,

2001, 613 p.

Le seul livre francophone que je recommande. Très bien écris,
c'est

un très bon livre pour débutants qui vous apprend tout ce qu'il y a à
apprendre sur la base et se rend assez loin dans les techniques avancées.
Version originale française, il contient très peu d'erreurs




Je me suis procuré le pdf de l'avant propos de ce livre et y'a une phrase
qui dit :
"Il suppose du lecteur une certaine pratique du langage C ou de Java".

J'ai lu un peu partout que ce livre était surtout une belle transition du C
au C++. Réactions ?

Avatar
Anthony
Sayajin wrote:

Même celui de Claude Delannoy ne conviens pas ?


Oulah malheureux tu vas faire repartir le troll à citer cet auteur ! moi qui
avait rattrapé les lectures je vais reprendre du retard ;-)
Ayant lu ce livre au tout départ avant de connaitre le langage et de me
mettre à lire Stroustrup vu que tous les livres francais m'énervaient, je
donne un avis tel que cité dans ce troll (euh pardon thread), les livres en
francais sont trop vieux et presentent du C décoré avec le mot class, pas
de C++ ! (ceux que j'ai vu)

Anthony
--
It's a bird.. It's a plane..
No, it's KernelMan, faster than a speeding bullet, to your rescue.
Doing new kernel versions in under 5 seconds flat..
-- Linus, in the announcement for 1.3.27

Avatar
Gabriel Dos Reis
"Sayajin" writes:

| "Loïc Joly" a écrit dans le message de
| news:cfja4b$bb2$
| > Sayajin wrote:
| >
| > > Bene . . . dans ce cas là pourquoi au lieu de vous fighter sur des voies
| > > lactées de post sur ce ng, vous ne citez pas la référence francaise en
| > > bouquin pour apprendre le C++ (hors Bjarne Stroustrup) ?
| >
| > Parce qu'il n'y en a (hélàs) pas ? Je n'ai pas encore lu un seul livre
| > de C++ en français que je conseillerais sans remors à un débutant.
| >
| > --
| > Loïc
| >
| >
|
| Même celui de Claude Delannoy ne conviens pas ?

Mon avis est que c'est une kholossale erreur.

Et oui, je l'ai lu.

-- Gaby
Avatar
drkm
Laurent Deniau writes:

drkm wrote:

Laurent Deniau writes:

Donc dans ce cas d'accord, ce qui est effectivement evident. Mais
vois-tu d'autres cas?


À vrai dire, je dirais plutôt que je ne vois pas vraiment de cas où
l'on peut utiliser un entier à la place d'une énumération.


Mon exemple ne t'as pas plu?


Heu, quel exemple ?

Il y a
bien des utilisations où ils sont équivalents, comme lorsqu'ils sont
employés en tant que « integral constant-expression ». Mais je ne


Oui, c'est bien de ca que je parle. Un const int peut ou ne pas etre
une integral *constant* expression


Oui.

tandis qu'un enum l'est
necessairement (apres conversion).


De quelle conversion parles-tu ?

dirais pas que passer de :
class C {
enum { size = 10 } ;
int myArray[ size ] ;
} ;


Touche! Relis la premiere phrase citee que j'avais pris soin de garder
dans mon/mes posts precedents.


De quelle phrase parles-tu ?

à :
class C {
static int const size = 10 ;
int myArray[ size ] ;
} ;
revient à utiliser un entier à la place d'une énumération. Dans les
deux cas, on utilise une « integral constant-expression ». Non ?


oui. Dans une classe il faut les trois, static + const + int (ou un
autre type entier).


Oui.

Je serais plutôt d'accord avec le fait de dire que l'on peut
utiliser une énumération à la place d'un entier, s'il est clair que


tu parles d'un entier ou d'une variable de type entier?


Les deux.

l'on veut parler de la conversion implicite. Avec comme conséquence
que l'on sait que l'on ne peut alors faire :
enum E { e = 1 } ;
int const a = 1 ;
E const b = e ;
int const * p = & a ;
int const * q = & b ;
car on ne peut convertir « E const * » vers « int const * ». Mais
alors, c'est un problème de compréhension des mécanismes de conversion
implicite.


non, c'est normal, c'est ce que je voulais montrer. Un enum n'a pas
d'adresse. Une variable enum en a une, mais c'est pas ce dont je
parlais.


Mais de quoi parlais-tu alors ? Si je me souviens bien, mais je
peux me tromper, tu disais qu'un entier constant pouvait être utilisé
à la place d'une énumération, mais que la réciproque n'était pas vrai.
Le tout à l'extérieur d'une classe.

L'exemple que tu donnais était donc biaisé, puisque ce n'est pas
d'utiliser une énumération à la place d'un entier qui ne vas pas, mais
l'adresse d'une énumération à la place de l'adresse d'un entier.
De plus, dans ton exemple, tu prenais directement l'adresse de la
valeur d'énumération « e », et non d'une variable de type « E ». Et
« e » n'est pas une lvalue, tu ne peux donc pas en prendre l'adresse.


eh eh. Je voulais justement monter l'action de const sur la creation
d'un temporaire, ca marche sur un const int et sur un enum:

{
enum E { e = 1 } ;
int const a = 1 ;

const int &p = e; // creation de temporaire
const int &q = 1; // creation de temporaire
const int &r = a; // ok
const E &s = e; // creation de temporaire
const E &t = 1; // boum
const E &u = a; // boum
}


Une énumération peut donc être utilisée à la place d'un entier. Un
entier ne peut pas être utilisé à la place d'une énumération.

Au fait, quel est le nom exact pour ce que j'ai appelé ici « valeur
d'énumération » ? Ce qui corresponderait dans l'exemple précédent au
« e ».


un identifier.


Merci.

Décidément, je pense qu'il y a un problème de compréhension dans ce
que l'on veut faire passer. Tu me donnes d'abord l'exemple suivant :

enum { e=1 };
const int a=1;

const int *p = &a; // ok
const int *q = &e; // boum

puis celui ci-dessus, 20 lignes plus haut. Je ne vois vraiment pas où
tu veux en venir.

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html



Avatar
drkm
Gabriel Dos Reis writes:

drkm writes:

| Gabriel Dos Reis writes:

| > « D&E, §3.8 Constants »

| [...]

| Intéressant.

| Mais je me pose une question. Lorsque tu nous cites de longues
| tirades comme celle-ci, souvent du D&E d'ailleurs, tu en possèdes une
| version électronique, tu utilises de l'OCR, ou tu t'échines à recopier
| tout le passage pour notre seul plaisir ?

Je crois qu'un analyse rapide des fautes de frappe te donnerait la
réponse :-)


En effet. L'OCR n'est pas encore au point.

Merci.

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html

Avatar
drkm
"Alain Naigeon" writes:

Ce qui a précédé l'étape actuelle du langage
paraît "impur" aux yeux de certains, c'est l'impression que j'ai eue.


Beaucoup de choses ont sans doute été impures dans celles qui ont
précédé l'étape actuelle du langage. Mais tu parles de généralités
alors que l'on s'en tenait à l'enseignement du C++.

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html

Avatar
Luc Hermitte
Gabriel Dos Reis wrote in
news::

| *je* ne suis pas partisan de les ignorer, simplement je trouve
| provocant - et en tout cas questionnable - la position consistant à
| dire qu'il est démodé d'enseigner comment ça marche !

T'aurais pris un coup de canicule ?

Je ne dis pas qu'il est démodé d'enseigner comment ça marche. Je dis
que pour apprendre aux débutants à programmer en C++, ce ne devrait
pas être la première chose à faire.



Il y a quelque chose qui me tue dans ce débat. Je ne crois pas que
quiconque ait parlé d'ignorer ces choses. Juste qu'il faut les présenter
au moment _opportun_. Moment qui se situe approximativement vers la fin ;
peut-être un peu avant le polymorphisme.



--
Luc Hermitte <hermitte at free.fr>
FAQ de <news:fr.comp.lang.c++> :
<http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/>
Dejanews : <http://groups.google.com/advanced_group_search>

Avatar
Luc Hermitte
"Sayajin" wrote in
news:cfjhfi$6cm$:

Bene . . . dans ce cas là pourquoi au lieu de vous fighter sur des
voies lactées de post sur ce ng, vous ne citez pas la référence
francaise en bouquin pour apprendre le C++ (hors Bjarne Stroustrup)


Parce qu'il n'y en a (hélàs) pas ? Je n'ai pas encore lu un seul
livre de C++ en français que je conseillerais sans remors à un
débutant.



Je mitouille avec Fabien. On attend Michel, notre sauveur quelque part.
:D

Bon ben je vais me jeter sur "Accelerated C++" de Koenig and Moo ou
bien la version electronique de "Think in C++" de Bruce Eckel, j'va
réviser mon anglais.


TIC++ est un peu viellot, mais intéressant sur certains aspects.


--
Luc Hermitte <hermitte at free.fr>
FAQ de <news:fr.comp.lang.c++> :
<http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/>
Dejanews : <http://groups.google.com/advanced_group_search>



Avatar
Pierre Maurette
"Sayajin" a écrit:
[...]
En même temps faut attendre la fin du bouquin pour voir l'utilisation de
"endl" à la place de "/n" !
*endl* à la place de *'n'* ou *"n"* ;-)

--
Pierre

Avatar
Sayajin
"Luc Hermitte" a écrit dans le message de
news:
"Sayajin" wrote in
news:cfjhfi$6cm$:

Bene . . . dans ce cas là pourquoi au lieu de vous fighter sur des
voies lactées de post sur ce ng, vous ne citez pas la référence
francaise en bouquin pour apprendre le C++ (hors Bjarne Stroustrup)


Parce qu'il n'y en a (hélàs) pas ? Je n'ai pas encore lu un seul
livre de C++ en français que je conseillerais sans remors à un
débutant.



Je mitouille avec Fabien. On attend Michel, notre sauveur quelque part.
:D

Bon ben je vais me jeter sur "Accelerated C++" de Koenig and Moo ou
bien la version electronique de "Think in C++" de Bruce Eckel, j'va
réviser mon anglais.


TIC++ est un peu viellot, mais intéressant sur certains aspects.



Bon ben chaque fois que j'ai parlé de "Accelerated C++" personne a bronché
je suis parti sur celui-là !