Musíte deklarovat funkce než začnete používat/call. Jste deklarovat argument 2 verze rectangle
funkce, ale zdá se, že zapomínáš vyhlásit 1 argument, přičemž verze.
Jak je uvedeno níže, pokud přidáte prohlášení pro 1 argument verzi, pak váš program funguje(zkompiluje).
#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;
}
Výstup z programu může být viděn zde.
Alternativní řešení:
Pokud nechcete deklarovat každou funkci zvlášť, pak byste měli jen definovat, je před hlavní místo, kterým je, jak je znázorněno níže.
#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;
}