Function 错误消息:未定义对';printHeader()和#x27&;未定义对'的引用;计算区(双倍)和#x27;

Function 错误消息:未定义对';printHeader()和#x27&;未定义对'的引用;计算区(双倍)和#x27;,function,reference,undefined,Function,Reference,Undefined,我写这个程序是为了计算一个圆的面积,它一直给我这个错误信息:“未定义对'printHeader()的引用和未定义对'calculateArea(double&')的引用。” 我搞不懂这是什么意思!我到处都找过,包括这个网站,但大多数答案都是我想不出来的 节目: #include <iostream> using namespace std; // Aquire radius value // Postcondition: print out header and return ra

我写这个程序是为了计算一个圆的面积,它一直给我这个错误信息:“未定义对'printHeader()的引用和未定义对'calculateArea(double&')的引用。”

我搞不懂这是什么意思!我到处都找过,包括这个网站,但大多数答案都是我想不出来的

节目:

#include <iostream>
using namespace std;

// Aquire radius value
// Postcondition: print out header and return radius value
double printHeader();

// Precondition: radius has been entered
// Postcondition: calculate and print out area of the circle
void calculateArea(double& radius);

int main()
{
    double area=0.0, radius=0.0;
    printHeader();
    calculateArea(radius);
    return 0;
}

double printHeader(double& radius)
{
    cout << "Program for calculating the area of a circle" << endl;
    cout << "Enter the radius of the circle: ";
    cin >> radius;
    return radius;
}

void calculateArea(double& radius, double area)
{
    double PI=3.14159;
    area = (PI*radius*radius);
    cout << "The area of the circle is: " << area << endl;
}
#包括
使用名称空间std;
//隔水层半径值
//后置条件:打印出标题和返回半径值
双打印头();
//前提条件:已输入半径
//后置条件:计算并打印圆的面积
空隙计算面积(双倍和半径);
int main()
{
双面积=0.0,半径=0.0;
printHeader();
计算earea(半径);
返回0;
}
双打印头(双打印头和半径打印头)
{

cout此错误是编译器告诉您声明了一些未定义的函数。如果查看函数原型:

// Aquire radius value
// Postcondition: print out header and return radius value
double printHeader();

// Precondition: radius has been entered
// Postcondition: calculate and print out area of the circle
void calculateArea(double& radius);
然后查看您稍后定义的函数:

double printHeader(double& radius) { ... }

void calculateArea(double& radius, double area) { ... }
您可以看到,您没有定义具有原型的函数-参数的数量不同!编译器根据函数的作用域和参数标识函数。您需要更新转发声明,以便在定义中包含参数:

double printHeader(double& radius);
void calculateArea(double& radius, double area);

另一种描述方法是,函数double printHeader()与函数double printHeader(double&radius)不同-第一个函数不带参数,第二个函数需要双重引用。

非常感谢!这就消除了我一直以来的困惑,现在我的程序可以运行了。