Bonjour.
J’ai donc besoin de créer un tableau d’objet (si possible dynamique) dans un programme en C++ mais je rencontre plein de problèmes lors de la compilation.
Voici le résume de cette partie concernée du programme : j’ai crée une classe “phrase” qui contient n fois un nombre d’objet mot (et n dépend du nombre de mots dans la phrase) en plus des autres attributs et fonctions membres.
Pouvez-vous me donner la syntaxe typique à écrire ou peut être un autre type de chose à utiliser.
Merci
slt j’ai lu to mess et c’est interessant
peut etre tu trouvera
ciao
[quelqu’un peut-il m’expliquer avant que je parte l’utilité du commentaire précédent]
Si tu pouvais donner plus d’infos sur le code, les erreurs, …
desolé d’avoir eté inactif.
Je vous passe le code (que je vais coupé un peu…)
//main.cpp
#include "phrase.h"
#include "mot.h"
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
string nom;
phrase phrase1;
phrase1.modContenu("");
phrase1.affInfo();
phrase1.extMots();
phrase1.filtMots();
phrase1.affMots();
}
---------------
//phrase.h
#ifndef PHRASE_H
#define PHRASE_H
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
class phrase
{
string contenu;
mot *mots;
string *mots0;
int nbreCaraTotal;
int nbreCara;
int nbreSepa;
int *posSepa;
int nbreMots0;
int nbreMots;
bool *sepa;
public:
phrase();
~phrase();
void modContenu(string);
void affContenu();
void recInfo();
void affInfo();
void extMots();
void filtMots();
void affMots();
};
#endif
-----------------
//phrase.cpp
#include "phrase.h"
#include "mot.h"
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
phrase::phrase()
{
nbreSepa=0;
}
phrase::~phrase()
{
delete[] posSepa;
delete[] sepa;
delete[] mots0;
delete[] mots;
}
void phrase::filtMots()
{
int add=0;
mots = new mot[nbreMots];
for(int i=0; i<nbreMots0; i++)
{
if(mots0[i]!="" )
{
mots[add].attribuer(mots0[i]);
add++;
}
}
}
-----------------
//mot.h
#ifndef MOT_H
#define MOT_H
#include "phrase.h"
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
class mot
{
string contenu;
string contenuSansTerm;
string contenuSansGroupe;
string nature;
string fonction;
string termBase;
.....
.....
public:
mot(string);
~mot();
void recInfo();
.....
.....
void attribuer(string contenu0);
.....
}
-------------------
//mot.cpp
#include "phrase.h"
#include "mot.h"
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
mot::mot(string contenu0)
{
contenu=contenu0;
mot::recInfo();
reperto=false;
termBase="";
contenuSansTerm="";
contenuSansGroupe="";
tailleCST=0;
groupe="";
posInFich=0;
ptVirg=0;
}
void mot::attribuer(string contenu0)
{
contenu=contenu0;
mot::recInfo();
}
........
..........
}
FIN DU CODE ouf (je rappelle que j'ai enlevé des partie inutiles qui n'ont aucun rapport avec mon problème)
les erreurs : C:\Programmation\Projai\phrase.cpp In member function `void phrase::affMots()':
124 C:\Programmation\Projai\phrase.cpp ")) << (((phrase*)this)->phrase::mots + (+(((unsigned int)i) * 48u)))->mot::afficher()'
note D:\Dev-Cpp\include\c++\3.4.2\bits\ostream.tcc:63 candidates are: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>&(*)(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
10 fois ça : note D:\Dev-Cpp\include\c++\3.4.2\bits\ostream.tcc:63 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]
C:\Programmation\Projai\phrase.cpp In member function `void phrase::filtMots()':
132 C:\Programmation\Projai\phrase.cpp no matching function for call to `mot::mot()'
note C:\Programmation\Projai\mot.h:14 candidates are: mot::mot(const mot&)
note C:\Programmation\Projai\mot.h:14 mot::mot(std::string)
C:\Programmation\Projai\Makefile.win [Build Error] [phrase.o] Error 1
Bon voila bon je suis plus débutant en c++ mais je suis tres loin d’un pro avec.
J’espere que ça va vous aider (si vous arriver a comprendre quelque chose dans ce fouilli)
Message edité le 18/03/2008 à 12:49
std::list
std::vector
ces 2 objets ne te vont pas ?
sinon bah vive malloc
et longue vie a lui