C ++构造函数给出了未定义的引用

时间:2017-01-05 00:25:09

标签: c++

我正在从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)

0 个答案:

没有答案