调用函数时的C ++未定义引用

时间:2019-09-14 16:17:54

标签: c++ function

我有一个类router.cpp,其中包含名为getShortestPath的dijkstras算法的实现。 我想从另一个名为interface.cpp的.cpp文件中调用此方法。

Router.h

public:
    Router(vector<double>);
    void getShortestPath(...):

我将 starter.h 定义为:

#include "Router.h"
class starter {
public:
     static Router r;

     static std::string func(std::vector<double> bbox) {
        std::string a = "DONE";
        return a;
    }
};
//EDIT: definition of a static variable must be given outside class declaration
 Router r = starter::r;

interface.cpp ,我要在其中呼叫getShortestPath

starter starter;
std::vector<double> bbox;
//starter::router =   
starter::r.getShortestPath(); // ERROR HERE "undefined reference to 'starter::r'

如何正确定义路由器?

我该如何克服这个问题?任何建议,将不胜感激。


编辑:

在提供有用的评论后,请找到上面的静态变量的更新定义。

这给我留下了与以前相同的错误:

starter::rstarter::r.getShortestPath();的未定义引用

0 个答案:

没有答案