Complilation séparée et classes

Complilation séparée et classes - C++ - Programmation

Marsh Posté le 22-03-2006 à 15:02:20    

Bonjour,
 
lors d'une compilation séparée, que faut il mettre dans le .h lorsqu'il s'agit de classes ?
toute la classe ?
seulement les prototypes des méthodes ?


Message édité par oc_alex86 le 22-03-2006 à 21:26:19
Reply

Marsh Posté le 22-03-2006 à 15:02:20   

Reply

Marsh Posté le 22-03-2006 à 15:06:59    

juste la déclaration.

Reply

Marsh Posté le 22-03-2006 à 15:08:19    

merci pour ta réponse.
Et les attributs aussi je pense ?

Reply

Marsh Posté le 22-03-2006 à 15:08:44    

oui

Reply

Marsh Posté le 22-03-2006 à 15:12:18    

merci

Reply

Marsh Posté le 22-03-2006 à 21:27:01    

heu, encore une question car ça ne marche pas chez moi :
que faut il mettre dans le .cc ?
tout ?

Reply

Marsh Posté le 22-03-2006 à 21:38:41    

juste les définitions et tu inclus .h

Reply

Marsh Posté le 22-03-2006 à 21:42:15    

merci pour ta réponse
et le début :
class NomClasse {..};
faut le mettre ?
Car j'ai un message d'erreur : redefinition de class NomClass


Message édité par oc_alex86 le 22-03-2006 à 21:43:11
Reply

Marsh Posté le 22-03-2006 à 21:44:38    

ca c'est la déclaration, uniquement dans le .h

Reply

Marsh Posté le 22-03-2006 à 21:48:06    

là j'ai les attributs qui sont indiqués comme non déclarés

Reply

Marsh Posté le 22-03-2006 à 21:48:06   

Reply

Marsh Posté le 22-03-2006 à 21:54:26    

montres le code du .h et du .cc
 
tu as pensé à inclure le .h avant les définition dans le .cc ?

Reply

Marsh Posté le 22-03-2006 à 21:59:08    

exemple
 
maclasse.h

Code :
  1. #ifndef maclasse_h_
  2. #define maclasse_h
  3. class maclasse
  4. {
  5. public:
  6.    maclasse();
  7. };
  8. #endif


 
maclasse.cpp:

Code :
  1. #include "maclasse.h"
  2. maclasse::maclasse()
  3. {
  4. }

Reply

Marsh Posté le 22-03-2006 à 22:08:29    

skelter a écrit :

ca c'est la déclaration, uniquement dans le .h


Non. C'est la définition. Une classe peut avoir plusieurs définitions dans des TU différentes, qui doivent être exactement la même. (ODR 3.2 )


Message édité par ++fab le 22-03-2006 à 22:08:58
Reply

Marsh Posté le 22-03-2006 à 22:11:06    

définition c'est le terme ? pour moi une définition doit etre unique et une déclarétion peut etre présente dans  plusieurs TU

Reply

Marsh Posté le 22-03-2006 à 22:17:09    

skelter a écrit :

définition c'est le terme ?


class Foo; // declaration
class Bar {}; // definition
 

Citation :

pour moi une définition doit etre unique


les classes, fonctions inline, templates, enum, etc ont le droit d'avoir plusieurs définitions -- les mêmes -- au sein d'un programme, une par TU.
 
 

Reply

Marsh Posté le 22-03-2006 à 22:28:00    

ok, c'est vrai que c'est plutot une définition

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed