Erreur: constructeur, destructeur, ou le type de conversion avant de ';' token?
J'essaie de compiler mon code pour tester une fonction pour lire et imprimer un fichier de données, mais j'ai une erreur de compilation que je ne comprends pas, "erreur: constructeur, destructeur, ou le type de conversion avant de ';' token". Mur du code-le texte est ci-dessous.
struct Day
{
int DayNum;
int TempMax;
int TempMin;
double Precip;
int TempRange;
};
struct Month
{
Day Days[31];
int MonthMaxTemp;
int MonthMinTemp;
double TotalPrecip;
int MonthMaxTempRange;
int MonthMinTempRange;
double AverageMaxTemp;
double AverageMinTemp;
int RainyDays;
double AveragePrecip;
}theMonth;
double GetMonth();
double GetMonth()
{
for (int Today = 1; Today < 31; Today++)
{
cout << theMonth.Days[Today].TempMax << theMonth.Days[Today].TempMin;
cout << theMonth.Days[Today].Precip;
}
return 0;
}
GetMonth(); //compile error reported here
Vous ne peut pas simplement appeler la méthode GetMonth() ici. mettre dans main()....
OriginalL'auteur Owen Pierce | 2009-10-15
Vous devez vous connecter pour publier un commentaire.
La ligne contenant l'erreur semble que vous essayez d'appeler la méthode GetMonth -- mais au niveau mondial, un programme C++ consiste en une série de déclarations. Depuis l'appel de la fonction n'est pas une déclaration, il ne peut pas exister dans l'isolement au niveau mondial. Vous pouvez avoir une déclaration qui est aussi une définition, dans lequel cas, il peut s'appeler une fonction dans le cadre de l'initialisation.
Un appel de fonction par elle-même, cependant, doit être contenue dans une autre fonction:
OriginalL'auteur Jerry Coffin
(En plus d'autres réponses.) Pour exécuter votre " méthode GetMonth()' fonction, vous devez appeler à partir d'une autre fonction ("main" ou ce qu'on appelle de "main") ou de l'utiliser dans l'initialiseur de l'expression d'un objet déclaré à l'espace de noms de champ d'application, comme dans
Cependant, cette dernière méthode pourrait souffrir de l'ordre d'initialisation de problèmes, c'est pourquoi il est recommandé d'utiliser l'ancienne méthode à chaque fois que possible.
OriginalL'auteur AnT
En C/C++, vous ne pouvez pas simplement ajouter le code de l'exécutable dans le corps d'un en-tête ou de mise en œuvre (.c,.rpc.cxx,etc...) fichier. Au lieu de cela, vous devez l'ajouter à une fonction. Si vous voulez avoir le code de s'exécuter au démarrage, assurez-vous de l'ajouter à la méthode main.
OriginalL'auteur JaredPar
Les programmes C++ n'est pas exécuté dans un contexte global. Cela signifie que vous devez mettre l'appel à la méthode GetMonth dans une fonction pour qu'il fonctionne.
int main() { }
pourrait être approprié.OriginalL'auteur Andres Jaan Tack