构造函数中的C ++链接器错误

时间:2011-04-23 01:21:32

标签: c++

我不断获得Poisson::Poisson(int, int)的链接器错误未定义引用 我想使用Poisson::Poisson(int, double),因为我显然正在尝试做,并且无法弄清楚为什么它不会让我!

#include "Distribution.h"
using namespace std;

class Poisson : public Distribution
{
 public:
 // Constructors
 Poisson(int inittrials, double initlambda);
 Poisson();           //Sets trials (k) = 10, lambda = 5

 // Knowledge responsibilities
 double GetLambda() const;  
 // Returns the time zone

 double calcProb();
 double calcExpVal();
 double calcVar();



private:                                     
  double lambda;
};

现在为我的cpp文件

#include "Poisson.h"
#include <iostream>
#include <string>
using namespace std;

Poisson::Poisson(int inittrials, double initlambda) 
  : Distribution(inittrials)
{ 
  lambda = initlambda; 
  updateNickname("Probability of Exactly k Occurences of an event");
  updateProbEqn("f(k, lambda) = (((lambda)^k) * e(^-lambda))/ k!");
  updateExpValEqn("E(X) = Lambda");
  updateVarEqn("VAR(X) = Lambda");
}

//************************************************************

Poisson::Poisson()
{ lambda = 5.0; }

//************************************************************

double Poisson::GetLambda() const
{ return lambda; }

//************************************************************

double Poisson::calcProb()
{
   double numerator;
   double denomanator;       
   //numerator = (GetLambda())^(GetTrials()) * (2.71828183)^((-1)*GetLambda());
}

double Poisson::calcExpVal()
{
}
double Poisson::calcVar()
{
}

1 个答案:

答案 0 :(得分:0)

您最有可能致电Poisson object(4, 4)。由于4是整数,是double,这将导致链接器错误(因为此构造函数不存在)。请在对象声明处尝试Poisson object(4, 4.0)