我有两个文件,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;
}
答案 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.cpp
和pay.cpp
中。
<强> pay.h
强>
#ifndef PAY_H
#define PAY_H
extern double calculatePay(double rate, double hours);
#endif
pay.cpp
和payroll.cpp
#include "pay.h"
// Then the rest of the file.