如何在C ++中调用外部函数?

时间:2014-04-07 04:15:13

标签: c++ function

我有两个文件,payroll.cpp和pay.cpp,在pay.cpp中我有函数“calculatepay”,我想在payroll.cpp中调用它,我对C ++很新,几乎没有真实的体验。提前感谢所有提示和帮助!

Payroll.cpp

#include <iostream>
#include <iomanip>
using namespace std;

int main ()
  {
/*
B C and G MUST BE EXTERNAL FUNCTIONS.
*/

#include <iostream>
#include <iomanip>
#include "pay.cpp"

using namespace std;

int main ()
  {
    char name[256];
    double pay, rate, hours;
    string inscode;

    while (cin.get(name,21))
      {
        cin >> rate;
        cin >> hours;
        cin >> inscode;
        cin.ignore(2,'\n');

        cout << "|" << name << "|";
        cout << "|" << rate << "|";
        cout << "|" << hours << "|";
        cout << "|" << inscode << "|" << endl;

        pay = pay.calculatepay(rate, hours);

        cout << setw(7) << fixed << setprecision(2) << rate << endl;
      }

    return 0;
  }

pay.cpp

#include <iostream>
using namespace std;

double calculatePay(double rate, double hours){
 double overtime;
 double pay;
 if(hours > 40){
  overtime = hours - 40;
  pay = ((rate *2)*overtime)+(rate *(hours - overtime));
 }else{
  pay = rate * hours;
 }
 return pay;
}

3 个答案:

答案 0 :(得分:3)

由于calculatePay()位于全局命名空间中,因此只需从主函数中调用它即可。 e.g。

pay = calculatePay(rate, hours);

通常你不会#include一个cpp文件,但你拥有它的方式会起作用。 通常,您在头文件中声明一个函数原型:pay.h,并包含它。这将使编译器在编译payroll.cpp时保持高兴。

答案 1 :(得分:1)

来自.cpp文件的#include .cpp文件。而是创建一个头文件来保存calculatePay的函数定义:

//pay.h
double calculatePay(double rate, double hours);

然后,#include pay.h在payroll.cpp中:

#include <iostream>
#include <iomanip>
#include "pay.h"

以下是有关您的代码的更多注意事项:

pay = pay.calculatepay(rate, hours);

这不会奏效。 pay是一个双数,一个简单的数字。它没有calculatePay方法。您的calculatePay方法是免费的:

pay = calculatePay(rate, hours);

您还有一些重复的代码:

#include <iostream>
#include <iomanip>
using namespace std;

int main ()
  {
/*
B C and G MUST BE EXTERNAL FUNCTIONS.
*/

您不希望在代码中使用此功能。您只需要一个 main。额外的#include赢得伤害,但他们也不是最好的干净代码创意。

此外,using namespace std在学术界很受欢迎,但在现实世界中总是令人不悦。使用std前缀(std::)被广泛接受。

答案 2 :(得分:0)

创建文件pay.h。将函数calculatePay的声明放入其中。将其包括在payroll.cpppay.cpp中。

<强> pay.h

#ifndef PAY_H
#define PAY_H

extern double calculatePay(double rate, double hours);

#endif

pay.cpppayroll.cpp

#include "pay.h"
// Then the rest of the file.
相关问题