C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

struct et class

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Loïc Joly
Guest





PostPosted: Thu Mar 10, 2005 9:46 pm    Post subject: struct et class Reply with quote



Bonjour à tous.

Je sais qu'à part les spécifications d'accès par défaut, struct et class
sont équivalents. Par contre, un type déclarée par struct peut il être
forward déclaré par class, ou réciproquement ?

J'ai eu récemment ce problème avec Visual C++, où il manglait le nom
d'une fonction différemment si c'était une class ou une struct, et donc
à la suite d'une forward declaration non concordante n'arrivait plus à
s'y retrouver. A-t-il raison ?

Merci,

--
Loïc
Back to top
Fabien LE LEZ
Guest





PostPosted: Thu Mar 10, 2005 10:08 pm    Post subject: Re: struct et class Reply with quote



On Thu, 10 Mar 2005 22:46:40 +0100, Loïc Joly
<loic.actarus.joly (AT) wanadoo (DOT) fr>:

Quote:
Par contre, un type déclarée par struct peut il être
forward déclaré par class, ou réciproquement ?

Il me semble que oui. Je dis "Il me semble" car je n'aime pas être
péremptoire, mais je crois bien me rappeler avoir vu une confirmation
ici même.
Toutefois, ce n'est que la norme ISO-C++, pas forcément le
comportement de compilateurs "presque-C++" qui suivent vaguement la
norme...

Quote:
J'ai eu récemment ce problème avec Visual C++, où il manglait le nom
d'une fonction différemment si c'était une class ou une struct

Encore un bug de VC++ ?


--
;-)

Back to top
kanze@gabi-soft.fr
Guest





PostPosted: Fri Mar 11, 2005 8:45 am    Post subject: Re: struct et class Reply with quote



Loïc Joly wrote:

Quote:
Je sais qu'à part les spécifications d'accès par défaut,
struct et class sont équivalents. Par contre, un type déclarée
par struct peut il être forward déclaré par class, ou
réciproquement ?

Certes. Les mots clés struct, class et union déclarent des types
de classe, voir §3.9.2 et §9.1. (La situation me semble moins
claire en ce qui concerne les unions ; §3.9.2 les cite bien
séparement des classes, tout en disant qu'elles sont des
classes. Mais §9.1 me semble clair ; il n'existe pas de type
union.)

Quote:
J'ai eu récemment ce problème avec Visual C++, où il manglait
le nom d'une fonction différemment si c'était une class ou une
struct, et donc à la suite d'une forward declaration non
concordante n'arrivait plus à s'y retrouver. A-t-il raison ?

C'est une incompatibilité avec la norme. Et avec l'ARM, je
crois ; je n'en ai pas une copie ici pour vérifier, mais il me
semble que la norme n'a rien changé à cet égard.

--
James Kanze GABI Software
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


Back to top
Gabriel Dos Reis
Guest





PostPosted: Sat Mar 12, 2005 5:31 am    Post subject: Re: struct et class Reply with quote

Loïc Joly <loic.actarus.joly (AT) wanadoo (DOT) fr> writes:

Quote:
Bonjour à tous.

Je sais qu'à part les spécifications d'accès par défaut, struct et
class sont équivalents. Par contre, un type déclarée par struct peut
il être forward déclaré par class, ou réciproquement ?

Oui.

[ mes excuses à tous ceux qui attendent que je leur réponde -- je suis
quelque part enfoui dans les deserts du middle-west et je ne fais que
survoler les messages. ]

-- Gaby

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.