J'ai deux classes comme celui-ci driver.cpp qui ont la méthode vide loadFile appeler une autre méthode int initialDragonXPos de util.cppconversion non valide de 'int (*)()' à 'int' [-fpermissive]
int loadFile(Dragon * dragons)
{
int index = 0;
index++;
dragons[index].setPosX(initialDragonXPos);
}
et méthode int initialDragonXPos comme celui-ci
int initialDragonXPos()
{
int pos = rand() % (MAX_DRAGON_XPOS * 2);
pos = pos + MIN_DRAGON_XPOS;
return pos;
}
Et c'est setPosX méthode
void Dragon::setPosX(int posX)
{
this->posX = posX;
}
J'obtiens l'erreur: conversion non valide de « int (*)() » à « int » [-fpermissive]. Alors, comment je peux le réparer
Vous devez ** ** appel d'une fonction pour obtenir sa valeur de retour ... même si elle ne prend aucun argument. Sinon, vous obtenez simplement son adresse, qui est bien sûr un type différent. – Deduplicator
Et si 'index ++' est hors limites pour 'dragons'? Vous devriez vérifier cela (ou de préférence utiliser une classe de conteneur C++, comme 'std :: vector'). – crashmstr
@crashmstr: 'std :: vector' ne vérifie normalement pas en mode release. – Deduplicator