Usted tiene que declarar la función antes de utilizar/llamar. Que se declare que el 2 argumento de la versión de rectangle
la función, pero usted parece olvidar a declarar el 1 argumento tomando versión.
Como se muestra a continuación si usted agregue la declaración de la 1 argumento versión de su programa de obras(compila).
#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 salida del programa puede ser visto aquí.
Solución alternativa:
Si usted no desea declarar cada función por separado, a continuación, sólo debe definir antes de principal en lugar de declararlas como se muestra a continuación.
#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;
}