Hai per dichiarare la funzione prima di utilizzare/chiamata. Si ha dichiarare il 2 argomento versione di rectangle
funzione ma sembrano dimenticate di dichiarare il 1 argomento prendendo versione.
Come mostrato di seguito se si aggiunge la dichiarazione per il 1 argomento della versione funziona il tuo programma(da compilare).
#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;
}
L'output del programma può essere visto qui.
Soluzione alternativa:
Se non si vuole dichiarare ogni funzione separatamente allora si dovrebbe definire, prima di main invece di dichiarare come illustrato di seguito.
#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;
}