|
|
|
|
Bonjour,
mon programme compile mais a l'exécution il plante chaque fois qu'il essaie de mettre un objet dans le tableau voici mon code. C'est un petit jeu de dé... merci pour votre aide
#include <cstdlib>
#include "De.h"
#include "Joueur.h"
#include "sept.h"
using namespace std;
sept::sept(){
}
sept::sept(int i){
adr=new Joueur[nbrJoueur=i];
taille=0;
}
sept::~sept(){
delete adr;
}
sept::sept(sept & listeJoueur){
nbrJoueur=listeJoueur.nbrJoueur;
adr=new Joueur[nbrJoueur];
}
void sept::operator = (sept & septi){
sept s;
s=septi;
}
/*string * sept::getJoueur(int i){
string s =*(adr+i).getVal();
return s;
}*/
void sept::participant(Joueur &UnJoueur){
//tab[taille]=UnJoueur; ici ca BUGGGG
*(adr+taille)=UnJoueur;
cout << "jjjjjjj";
affiche();
//adr[taille]=UnJoueur;
++taille;
}
int sept::partie(){
De d;
d.lancer();
int score=d.getVal();
return score;
}
void sept::affiche(){
for(int i=0;i<taille;i++){
cout <<"00000000" <<adr[i].getVal();
}
}
*****************************MAIN*************************************
#include<iostream>
#include "sept.h"
using namespace std;
static int NBR=7;
Joueur inscrireJoueur(){
string nomJoueur;
cout << "Quel est le nom du jour ?";
cin >> nomJoueur;
Joueur unJoueur = Joueur::Joueur(nomJoueur);
return unJoueur;
}
void main()
{
int nbrJoueur,de;
string nom;
cout << "quel est le nombre de joueur ?"<< endl;
cin >> nbrJoueur;
sept s=sept::sept(nbrJoueur);
for (int i=0;i<nbrJoueur;++i) {
Joueur j=inscrireJoueur();
s.participant(j);
}
do
{
for(int i=0;i<nbrJoueur;i++){
// nom=s.getJoueur(i);
de=s.partie();
cout << nom<<" a fait comme score: " << de<< endl;
}
}
while ((de!=NBR));
}
Configuration: Windows Vista Firefox 3.0.4
Le truc c'est que là on a qu'une partie du code il manque "De.h", "Joueur.h", "sept.h". Quelques recommandations de programmation :
//tab[taille]=UnJoueur; ici ca BUGGGG ... il faut que tab soit au moins de taille "taille + 1", ainsi la case tab[taille] est allouée et peut être modifiée. Malheureusement comme il manque le header on ne sait pas de quel type est tab (si c'est un std::vector tu peux utiliser la méthode resize(), si c'est un tableau il faut l'allouer (par exemple avec un new dans le constructeur et le désallouer avec delete dans le destructeur). Bonne chance |
Voici la suite manquante
|
J'ai change le main mais ca plante tjrs .... :(
|
Peux tu mettre une archive de ton code sur cjoint (avec un makefile pour compiler) et me donner l'adresse.
|