在静态函数中初始化静态变量导致未解决

时间:2011-04-30 22:39:07

标签: c++ static static-methods

class PossibilisticShellClustering
{
public:
    PossibilisticShellClustering(void);
    ~PossibilisticShellClustering(void);
    static void SetParameters(double deltaDistance);
    static  double deltaDistance
};

我想在函数SetParameters中初始化静态变量deltaDistance。所以在* .cpp文件中我写了

void PossibilisticShellClustering::SetParameters(double deltaDistance)
{
    PossibilisticShellClustering::deltaDistance = deltaDistance;    
}

然而我得到了链接器错误

  

未解决的外部符号“public:   静态双   PossibilisticShellClustering :: deltaDistance”   (?deltaDistance @ @@ PossibilisticShellClustering 2NA)

有人可以告诉我为什么吗?

PossibilisticShellClustering.obj

1 个答案:

答案 0 :(得分:2)

您需要在程序中的某个源文件中定义PossibilisticShellClustering::deltaDistance,通常是.cc或.cpp文件。

double PossibilisticShellClustering::deltaDistance;

你在班级团体中拥有的东西(或者如果它以;终止而拥有)只是一个声明。静态数据成员也需要定义。