“Non Déclaré dans la portée en Fonction en C++ à l'aide de Code:Blocks sous Linux
C'est mon code:
#include <iostream>
#include "rlutil.h"
#include <cmath>
#include <string>
using namespace std;
int getNumber()
{
int firstNumber;
int secondNumber;
cout << "Please Enter Your First Number." << endl;
cin >> firstNumber;
cout << "Please Enter Your Second Number." << endl;
cin >> secondNumber;
return 0;
}
int writeNumber()
{
getNumber();
rlutil::setColor(3);
cout << firstNumber + secondNumber << endl;
return 0;
}
Quand je compile il à vérifier pour les erreurs qu'il me donne:
/home/bresser/Documents/LearnC++/main.cpp||In function ‘int writeNumber()’:|
/home/bresser/Documents/LearnC++/main.rpc|24|erreur: ‘firstNumber " n'a pas été déclarée dans le champ d'application|
/home/bresser/Documents/LearnC++/main.rpc|24|erreur: ‘secondNumber " n'a pas été déclarée dans le champ d'application|
||=== Build finished: 2 erreurs, avertissements 0 ===|
Je sorte de comprendre ce que ses dire ne comprends juste pas comment le résoudre.
- Le concept de la portée des variables est fondamentale pour la langue. Pouvez-vous nous dire quelles sont les ressources que vous utilisez pour apprendre le C++? Si non, nous pouvons vous recommander plusieurs bons livres.
Vous devez vous connecter pour publier un commentaire.
La solution la plus simple est de prendre
de la getNumber de la fonction et de leur donner une portée mondiale. C'est, de les mettre juste en dessous de la
using namespace std;
ligne dans votre code.Puisque vous déclarez firstNumber et secondNumber à l'intérieur de getNumber(), writeNumber() n'est pas en mesure de les atteindre. Vous pourriez faire comme ceci (utiliser passage par référence) si vous ne souhaitez pas déplacer les variables de portée mondiale:
C'est parce que les deux variables (
firstNumber
etsecondNumber
) sont hors de portée, c'est la seconde méthode ne peut pas "voir" parce qu'ils sont déclarés dans la première méthode.Faire de ces variables global de la volonté de résoudre le problème, il suffit de déplacer:
vers le haut, au-dessus de votre définition de
getNumber()
.