Passer un objet en parametres: scalar VS non-scalar?
Bon bon le c++ me plait mais me casse la tête!:calim2:
J'ai écrit un classe Grille et une classe Joueur que j'instancie.
Dans un main, je veux passer cette "Grille g" et "Joueur j" en paramètres dans une fonction mais ça ne fonctionne pas. Je croyais devoir ajouter & devant les param mais non, ça ne suffit pas. J'obtiens l'erreur "conversion from `Grille*' to non-scalar type `Grille' requested". Même erreur pour le Joueur.
Voici un peu de code pour vous situer:
Ex de la classe joueur:
Code:
1 2 3 4 5
| Joueur::Joueur(string nom, int pointage){
this->nom = nom;
this->pointage = pointage;
....
} |
Voici la fonction qui me cause problème (pas d'erreur à la compilation en passant):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| int choixColonneUtilisateur(Grille g, Joueur j, int ligne) // *************** A CODER
{
g.afficherGrille();
int colonne = saisirEntier(0, g.getDim(), ": Veuillez entrer le numero de colonne de la case choisie : ");
if (g.getValeurDeLaCase(ligne, colonne) == 99)
{
cout << "***Choix invalide***" << endl;
return 0;
}else
{
int tmp = g.getValeurDeLaCase(ligne, colonne);
g.setValeurDeLaCase(ligne, colonne, 99);
j.setPointage(j.getPointage() + tmp);
return tmp;
}
} |
Mais voilà! Si j'appel cette fonction dans un main, exempe:
Code:
1 2 3 4 5 6
| ............
if (veuxCommencer.compare("oui") == 0)
{
int temp = choixColonneUtilisateur(g, j1, 0);
}else..........
{ |
La ligne mauve soulignée me donne l'erreur scalar....
Que faire?
Merci