如何在 c++ 中不将其显示为函数定义的情况下调用函数

How to call a function without it appearing as a function definition in c++?

本文关键字:函数 定义 调用 情况下 显示 c++      更新时间:2023-10-16
#include <iostream>
#include<iomanip>
using namespace std;
//prototypes
void getData(double base,double height);
void getData(double radiusa,double radiusb);
void printData(double rec_area,double elli_area);
void getData(double rpar1,double rpar2);
void printData(double vpar1,double vpar2);
//Declare variables
double base,height, radiusa, radiusb, rec_area, elli_area,rpar1, rpar2, vpar1,vpar2;
//Declare a global constant named PI equal to 3.141592;
const double PI = 3.141592;
int main()
{
    //Print on the screen “For the rectangle”
    cout << "For the rectangle" << endl;
    //Call void function for base and height
    getData(base, height);
    //Print on the screen “For the ellipse”
    cout << "For the ellipse" << endl;
    //Call void function for lengths
    getData(radiusa, radiusb);
    //Calculate the area and store the result for rectangle
    rec_area = base * height;
    //Calculate the area and store the result for ellipse
    elli_area = PI * radiusa * radiusb;
    //Call void function that receives the two areas and returns them 
    printData(rec_area, elli_area);
    //Get both values from the keyboard and store them in rpar1 and rpar2.
    getData(rpar1, rpar2);
    //Format to use fixed point
    printData(vpar1, vpar2);
    return 0;
}
//call functions
void getData(base, height) 
{
    return;
}
void getData(radiusa, radiusb)
{
    return;
}
void printData(rec_area, elli_area)
{
    cout << "The area of the rectangle is " << rec_area << endl << endl; 
    cout << "The area of the ellipse is " << elli_area << endl << endl;
    return;
}
void getData(rpar1, rpar2)
{
    return;
}
void printData(vpar1, vpar2)
{
    cout << "Please enter two lenghts: " << endl << endl;
    cout << fixed << showpoint << setprecision (1);
    return;
}

我一直在这里和那里弄乱代码,所以如果它看起来很丑,我很抱歉。我也是菜鸟。以下是错误:

error C2448: 'getData' : function-style initializer appears to be a function definition
error C2448: 'getData' : function-style initializer appears to be a function definition
error C2448: 'printData' : function-style initializer appears to be a function definition
error C2448: 'getData' : function-style initializer appears to be a function definition
error C2448: 'printData' : function-style initializer appears to be a function definition

首先,在 main 之上编写函数声明是编写函数的好技术。

您在代码中看到的错误是因为在编写函数的实际主体时,需要再次指定参数的类型。函数的代码应该是

//declare functions
void getData(double base, double height);
void getData2(double radiusa, double radiusb);
void printData(double rec_area, double elli_area);    
void getData3(double rpar1, double rpar2);
void printData2(double vpar1, double vpar2);
int main(void)
{
    //your code here
}
//write body of functions
void getData(double base, double height) 
{
    return;
}
void getData2(double radiusa, double radiusb)
{
    return;
}
void printData(double rec_area, double elli_area)
{
    cout << "The area of the rectangle is " << rec_area << endl << endl; 
    cout << "The area of the ellipse is " << elli_area << endl << endl;
    return;
}
void getData3(double rpar1, double rpar2)
{
    return;
}
void printData2(double vpar1, double vpar2)
{
    cout << "Please enter two lenghts: " << endl << endl;
    cout << fixed << showpoint << setprecision (1);
    return;
}

编辑:哦,roeland是对的,当你重载函数时,它们的参数需要有所不同,否则它们看起来与编译器相同。