Re: c++ problème très très bête :

Top Page

Reply to this message
Author: Miguel Moquillon
Date:  
To: guilde
Subject: Re: c++ problème très très bête :
On Mon, Sep 12, 2005 at 10:16:01PM +0200, JLM aka cityhunter wrote:
> ce n'est pas parce que les 4 lignes que j'ai cité dans le message
> étaient des appels à la libc que le programme est du C....

J'ai parlé de code, pas de programme.

> >Ensuite, généralement, j'utilise plutôt le code suivant dans
> >l'assignement:
> >my_addr.sin_addr.s_addr = ((struct in_addr *)(peer->h_addr))->s_addr;
> >
> >
> qui marche avec un compilateur C mais pas un compilateur C++

Avant de te répondre, j'ai d'abord testé avec un compilateur C++, ici en
l'occurance g++ 4.0.1.
Et ça marche très bien, excepté ton code que j'ai aussi essayé.

> le pb c'est que j'ai oublié qu'en C++ les struct et
> class sont obligatoirement typedef.....

C'est nouveau ça.

Une explication plus précise.
En C++, 'struct' et 'class' sont des déclarations de classes d'objets.
Autrement dit, 'struct' et 'class' définissent le type des objets (plus
exactement leur interface définit le type des objets).
'struct' déclare une classe dans laquelle les membres sont publics par
défaut alors que 'class' déclare une classe dans laquelle les membres
sont privées par défaut. En fait, l'écriture struct a été gardée en C++
depuis le début pour des raisons de compatibilité avec le C.
Donc, le mot-clé struct n'a pas tout à fait la même signification que
celui de C.

--
Miguel Moquillon <miguel.moquillon@???>
jabber://moqui@???
http://miguel.moquillon.free.fr