Вам нужно объявить функции, прежде чем вы сможете их использовать.
Либо объявите их вперед:
#include <iostream>
using namespace std;
// forward declarations
void area(int a, int b);
void area(float a, float b);
void area(double a, double b);
int main() {
area(13.3, 67.4);
return 0;
}
void area(int a, int b){
cout << "The area is " << a * b << endl;
}
void area(float a, float b){
cout << "The area is " << a * b << endl;
}
void area(double a, double b){
cout << "The area is " << a * b << endl;
}
В противном случае переместите реализации выше main()
:
#include <iostream>
using namespace std;
void area(int a, int b){
cout << "The area is " << a * b << endl;
}
void area(float a, float b){
cout << "The area is " << a * b << endl;
}
void area(double a, double b){
cout << "The area is " << a * b << endl;
}
int main() {
area(13.3, 67.4);
return 0;
}
При этом, поскольку реализации точно такие же, только с разными типами данных, рассмотрите возможность использования одной шаблонной функции:
#include <iostream>
using namespace std;
template<typename T>
void area(T a, T b){
cout << "The area is " << a * b << endl;
}
int main() {
area<double>(13.3, 67.4);
return 0;
}