Vous avez à déclarer la fonction avant de l'utiliser/l'appeler. Vous n'avez déclarer l'argument 2 version de rectangle
fonction, mais vous semblez oublier de déclarer le 1er argument de la prise de version.
Comme indiqué ci-dessous si vous ajoutez la déclaration de l'1 argument de la version de votre programme fonctionne(compile).
#include <iostream>
using namespace std;
//declare the function before main
int rectangle(int p, int l);
int rectangle(int p);//ADDED THIS DECLARATION
int main() {
cout << rectangle(3);
return 0;
}
//define the functions after main
int rectangle(int p) {
return p*p;
}
int rectangle(int p, int l) {
return p*l;
}
La sortie du programme peut être vu ici.
Solution Alternative:
Si vous ne voulez pas de déclarer chaque fonction séparément, vous devez simplement définir avant d'principal au lieu de le déclarer comme indiqué ci-dessous.
#include <iostream>
using namespace std;
//define the functions before main. This way there is no need to write a separate function declaration because all definition are declarations
int rectangle(int p) {
return p*p;
}
int rectangle(int p, int l) {
return p*l;
}
int main() {
cout << rectangle(3);
return 0;
}