Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4070 connectés 

  FORUM HardWare.fr
  Programmation

  Pourquoi ca compile pas ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pourquoi ca compile pas ?

n°112691
Profil sup​primé
Posté le 15-03-2002 à 20:34:24  answer
 

J'ai un bout de code qui veut pas compiler et je comprends pas pourquoi.
Apparement il veut pas que j'utilise de constructeur avec arguments pour initialiser une donnée membre d'une classe
 
cf le code suivant qui plante a la ligne "A a(4);"
 
 
class A
{
public:
 A(int c)  { _c = c;};
private:
 int _c;
};
 
class B
{
public:
 B() {};
private:
 A a(4);
 
};
 
 
void main(int argc, char ** argv)
{
 B b;
}

mood
Publicité
Posté le 15-03-2002 à 20:34:24  profilanswer
 

n°112694
deathsharp
Posté le 15-03-2002 à 20:45:39  profilanswer
 

Code :
  1. class A
  2. {
  3. public:
  4. A(int c)  { _c = c;};
  5. private:
  6. int _c;
  7. };
  8. class B
  9. {
  10. public:
  11. B() : a( 4 )
  12. {};
  13. private:
  14. A a;
  15. };
  16. void main(int argc, char ** argv)
  17. {
  18. B b;
  19. }


---------------
What butter and whiskey won't cure, there is no cure for.
n°112696
Profil sup​primé
Posté le 15-03-2002 à 20:54:02  answer
 

putain !!
j'avais pas pensé a ca !
bravo deathsharp, je vois qu'il n'y a pas que des blaireaux sur HFR
 
ceci dit j'aimerais comprendre du point de vue du fonctionnement du compilo pourquoi mon code n'est pas bon.
tu peux m'expliquer ca stp ? ca m'interesse vraiment beaucoup

n°112699
verdoux
And I'm still waiting
Posté le 15-03-2002 à 21:00:57  profilanswer
 

Il a pas compilé parce que ce que tu avais écrit n'était pas du c++.

n°112701
Profil sup​primé
Posté le 15-03-2002 à 21:04:30  answer
 

vachement constructif la reponse !! je sais bien que c'est pas du C++, sinon ca compilerait
 
pour que ca ne soit pas du C++, c'est qu'il y a une raison!  
cette raison fait que le compilo ne PEUT pas compiler ce code.
 
quelle est cette raison ?
à moins que ca ne soit qu'une convention syntaxique
 
deathsharp stp !!!

n°112703
deathsharp
Posté le 15-03-2002 à 21:06:14  profilanswer
 

ca s'appelle la norme c++ :D
on a pas le droit de faire. jamais de declaration de variable dans la decl de la classe. tu dois forcement le faire a l'aide de constructeur.
en esperant avoir repondu a la question


---------------
What butter and whiskey won't cure, there is no cure for.
n°112704
Profil sup​primé
Posté le 15-03-2002 à 21:13:08  answer
 

je vais expliquer un peu mieux ce que je veux dire
 
par exemple : la norme C++ dit que dans le corps d'une fonction statique membre d'une classe, on ne peut appeler dans la meme classe que des fonctions elles aussi statiques.
pourquoi ? parce que dans une fonction statique on perd le pointeur this, donc on ne peut plus appeler de methodes non statiques (qui ont besoin d'un this)
 
c'est dans la norme C++ et il y a une raison claire qui explique pourquoi c'est dans la norme.
 
ma question : est ce que pour mon probleme il y a une raison claire qui fait que ca ne PEUT pas marcher ou alors ca pourrait tres bien marcher mais Strustroup a décidé que c'est pas du beau code donc c'est interdit ?

n°112706
verdoux
And I'm still waiting
Posté le 15-03-2002 à 21:20:17  profilanswer
 

Le seul type de membre que tu peux définir dans un corps de classe est un membre statique, const, de type entier (

Code :
  1. static const int toto = 1;

)
C'est la norme, ça s'explique pas, c'est comme ça.

n°112713
deathsharp
Posté le 15-03-2002 à 21:48:26  profilanswer
 

Oualb a écrit a écrit :

je vais expliquer un peu mieux ce que je veux dire
 
par exemple : la norme C++ dit que dans le corps d'une fonction statique membre d'une classe, on ne peut appeler dans la meme classe que des fonctions elles aussi statiques.
pourquoi ? parce que dans une fonction statique on perd le pointeur this, donc on ne peut plus appeler de methodes non statiques (qui ont besoin d'un this)
 
c'est dans la norme C++ et il y a une raison claire qui explique pourquoi c'est dans la norme.
 
ma question : est ce que pour mon probleme il y a une raison claire qui fait que ca ne PEUT pas marcher ou alors ca pourrait tres bien marcher mais Strustroup a décidé que c'est pas du beau code donc c'est interdit ?  




dans une fonction static tu na pas de this du tout
normal que tu peux pas appeler les autres fonctions.
 
et une raison claire... ben c comme ca.
faut bien que qq aie definie ca un jour nan?
 
c comme quand tu apprends l'anglais, ya bien des trucs que tu dois pas faire et d'autre que tu dois faire (les accord...)
 
si ca va pas avec ca ben... fait du yoga ca t'aidera ptetre :D


---------------
What butter and whiskey won't cure, there is no cure for.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Pourquoi ca compile pas ?

 

Sujets relatifs
[Linux, Glut & GLX] ça compile pas[VC++ 4.0] Il me compile tout mon projet à chaque debug
Ca passe nikel avec gcc , mais ca compile pas avec visual....[C et Assembleur] Ça compile pas.
euh comment on compile ???php peut se compilé??
[ASP] Compilé ou interprété ?[HTML Compilé] Comment qu'on fait ?
(Programmes C) comment exécuter un code compilé sous Linux console ?comment on compile un .cc sous linux ?
Plus de sujets relatifs à : Pourquoi ca compile pas ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)