我正在从Delphi场景转向C ++,我正在尝试将项目转换为C ++。如果你看main.cpp
,你可以看到:
#include<iostream>
#include "eqsecdeg.h"
int main() {
double a, b, c;
std::cin >> a;
std::cin >> b;
std::cin >> c;
equations::eqSecDeg solver(a, b, c);
std::cout << solver.getDelta();
return 0;
}
名为eqsecdeg.h
的文件有这样的内容:
#ifndef EQUATIONS_H
#define EQUATIONS_H
#include<vector>
#include<complex>
namespace equations {
//solve second degree equation
class eqSecDeg {
private:
double a, b, c, delta;
double getDelta(double a, double b, double c);
std::vector<double> solArray;
public:
eqSecDeg(const double valA, const double valB, const double valC);
double getDelta();
std::string getDerivative();
std::vector<double> getSolutions();
};
//help methods for output
double fractionToDecimal(const std::string& value);
std::string decimalToFraction(const double x);
}
#endif
我已经读了这么多次并用Google搜索解决方案,但我没有运气。当我在我的linux shell中提供g++ -std=c++14 main.cpp
时出现此错误:
main.cpp :(。text + 0x72):未定义的方程式引用:: eqSecDeg :: eqSecDeg(double,double,double)
main.cpp :(。text + 0x7e):未定义的方程式引用:: eqSecDeg :: getDelta()collect2:错误:ld返回1退出状态
有什么想法吗?我真的无法理解这段代码错在哪里。我把include放到头文件,正确的命名空间,我正在以标准方式创建一个本地对象。有任何打字错误吗?
注意:如果需要this是标头的实现(称为eqsecdeg.cpp)