Compilation d'une classe en c++

Signaler
Messages postés
47
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
7 janvier 2005
-
Messages postés
47
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
7 janvier 2005
-
Je veux créer une classe monome seulement la compilation ne s'effectue pas correctement. Pouvez-vous m'aider?
Je vous en remercie d'avance. Je commence par un constructeur et une fonction retournant le coeff du monôme.

//fichier.h

# include
#include <cmath>
using namespace std;

# define MAX_IND 5

class monome {

int c;
int *tab;
int*val;

public :
monome1();

int coeff();

};

//fichier.cpp

# include "cricri.h"
# include
# include <cmath>
using namespace std;

monome::monome1(int c)//constructeur et c est le coeff
{
int i;
int *tab=new int[MAX_IND];//tableau avec MAX_IND le nombre d'indéterminées
tab[0]=c;//dans la première case, je mets le coeff
for(i=1;i<=MAX_IND;i++)//pour les autres cases, initialisation à 0
{
tab[i]=0;
}
}

int monome::coeff ()//fonction retournant le coeff du monome
{int c;
return c;
}

//fichier main

# include "cricri.h"
# include "cricri.cpp"
# include
# include <cmath>
using namespace std;

void main()
{
monome m();
int choix=-1;
while (choix!=0)
{
cout<<"1.coeff\n";
cout<<"0.quitter\n";
cout<<"Faites votre choix :";
cin>>choix;

switch(choix){
case 1 : coeff(); break;
default : cout<<"pas le bon cas"<<endl;break;
}
}
return ;
}

Mes erreurs :

--------------------Configuration: dauphin - Win32 Debug--------------------
Compiling...
cricri.cpp
c:\mes documents\école\dauphin\cricri.cpp(7) : error C2511: 'monome1' : overloaded member function 'int (int)' not found in 'monome'
c:\mes documents\école\dauphin\cricri.h(7) : see declaration of 'monome'
test.cpp
c:\mes documents\école\dauphin\cricri.h(7) : error C2011: 'monome' : 'class' type redefinition
c:\mes documents\école\dauphin\cricri.cpp(7) : error C2511: 'monome1' : overloaded member function 'int (int)' not found in 'monome'
c:\mes documents\école\dauphin\cricri.h(7) : see declaration of 'monome'
c:\mes documents\école\dauphin\test.cpp(20) : error C2065: 'coeff' : undeclared identifier
Error executing cl.exe.

dauphin.exe - 4 error(s), 0 warning(s)

3 réponses

Messages postés
78
Date d'inscription
lundi 14 avril 2003
Statut
Membre
Dernière intervention
23 avril 2010

Pour info le constructeur d'une classe porte le meme nom que la classe.. en gros tu renommes ta fonction monome1 en monome et ca sera deja un tout petit peu mieux.

Ensuite pour faire appel a la methode coeff de ta classe dans ton main tu dois faire appel a m.coeff() sinon il trouvera jamais ta methode.

Change deja ces 2 trucs et ca passera mieux deja.
Voila

Mess with the best, die like the rest
Messages postés
47
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
7 janvier 2005

Mais je n'ai pas défini m. Où faut-il que je le déclare?

//fichier.h

# include
#include <cmath>
using namespace std;

# define MAX_IND 5

class monome{

int c;
int *tab;
int*val;

public :
monome(int c);

int coeff();

};

//fichier.cpp

# include "cricri.h"
# include
# include <cmath>
using namespace std;

monome::monome(int c)//constructeur et c est le coeff
{
int i;
int *tab=new int[MAX_IND];//tableau avec MAX_IND le nombre d'indéterminées
tab[0]=c;//dans la première case, je mets le coeff
for(i=1;i<=MAX_IND;i++)//pour les autres cases, initialisation à 0
{
tab[i]=0;
}
}

int monome::coeff ()//fonction retournant le coeff du monome
{int c;
return c;
}

//fichier main

void main()
{
monome m();
int choix=-1;
while (choix!=0)
{
cout<<"1.coeff\n";
cout<<"0.quitter\n";
cout<<"Faites votre choix :";
cin>>choix;

switch(choix){
case 1 : m.coeff(); break;
default : cout<<"pas le bon cas"<<endl;break;
}
}
return ;
}

Mes erreurs :

--------------------Configuration: dauphin - Win32 Debug--------------------
Compiling...
test.cpp
c:\mes documents\école\dauphin\cricri.h(7) : error C2011: 'monome' : 'class' type redefinition
c:\mes documents\école\dauphin\test.cpp(20) : error C2228: left of '.coeff' must have class/struct/union type
cricri.cpp
c:\mes documents\école\dauphin\cricri.cpp(19) : warning C4700: local variable 'c' used without having been initialized
Error executing cl.exe.

dauphin.exe - 2 error(s), 1 warning(s)

Merci d'avance.
Messages postés
47
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
7 janvier 2005

J'ai décider d'implanter au départ qu'une seule fonction et un constructeur et essayer de le compiler. Seulement ca ne marche pas.

//fichier.h

# include
#include <cmath>
using namespace std;

# define MAX_IND 5

class monome{

int c;
int *tab;
int*val;

public :
monome(int c);

int monome::coeff();

};

//fichier.cpp

# include "cricri.h"
# include
# include <cmath>
using namespace std;

monome::monome(int c)//constructeur et c est le coeff
{
int i;
int *tab=new int[MAX_IND];//tableau avec MAX_IND le nombre d'indéterminées
tab[0]=c;//dans la première case, je mets le coeff
for(i=1;i<=MAX_IND;i++)//pour les autres cases, initialisation à 0
{
tab[i]=0;
}
}

int monome::coeff ()//fonction retournant le coeff du monome
{int c;
return c;
}

//fichier main

void main()
{
monome m();
int choix=-1;
while (choix!=0)
{
cout<<"1.coeff\n";
cout<<"0.quitter\n";
cout<<"Faites votre choix :";
cin>>choix;

switch(choix){
case 1 : monome::coeff(); break;
default : cout<<"pas le bon cas"<<endl;break;
}
}
return ;
}

Mes erreurs :

--------------------Configuration: dauphin - Win32 Debug--------------------
--------------------Configuration: dauphin - Win32 Debug--------------------
Compiling...
cricri.cpp
c:\mes documents\école\dauphin\cricri.cpp(4) : error C2143: syntax error : missing ';' before 'PCH creation point'
test.cpp
c:\mes documents\école\dauphin\cricri.h(3) : error C2143: syntax error : missing ';' before 'using'
c:\mes documents\école\dauphin\cricri.h(7) : error C2011: 'monome' : 'class' type redefinition
c:\mes documents\école\dauphin\test.cpp(20) : error C2352: 'monome::coeff' : illegal call of non-static member function
c:\mes documents\école\dauphin\cricri.h(16) : see declaration of 'coeff'
Error executing cl.exe.

dauphin.exe - 4 error(s), 0 warning(s)

Merci d'avance.