我正在尝试编译文件 q1.cpp ,但我一直收到编译错误:
q1.cpp:2:28: fatal error: SavingsAccount.h: No such file or directory
compilation terminated.
头文件和头文件的实现都与 q1.cpp 完全相同。
文件如下:
q1.cpp :
#include <iostream>
#include <SavingsAccount.h>
using namespace std;
int main() {
SavingsAccount s1(2000.00);
SavingsAccount s2(3000.00);
}
SavingsAccount.cpp :
#include <iostream>
#include <SavingsAccount.h>
using namespace std;
//constrauctor
SavingsAccount::SavingsAccount(double initialBalance) {
savingsBalance = initialBalance;
}
SavingsAccount::calculateMonthlyInterest() {
return savingsBalance*annualInterestRate/12
}
SavingsAccount::modifyInterestRate(double new_rate) {
annualInterestRate = new_rate;
}
SavingsAccount.h :
class SavingsAccount {
public:
double annualInterestRate;
SavingsAccount(double);
double calculateMonthlyInterest();
double modifyInterestRate(double);
private:
double savingsBalance;
};
我想重申所有文件都在SAME目录中。我正在尝试通过在Windows命令提示符处使用此行进行编译:
C:\MinGW\bin\g++ q1.cpp -o q1
对此问题的任何输入都将不胜感激。
答案 0 :(得分:4)
#include <SavingsAccount.h>
应该是
#include "SavingsAccount.h"
由于SavingsAccount.h
是您定义的头文件,因此您不应要求编译器使用<>
来搜索系统头。
同时,在编译它时,您应该编译两个cpp文件:SavingsAccount.cpp
和q1.cpp
。
g++ SavingsAccount.cpp q1.cpp -o q1
BTW:你错过了;
:
SavingsAccount::calculateMonthlyInterest() {
return savingsBalance*annualInterestRate/12;
//^^; cannot miss it
}