未定义的静态方法参考

时间:2013-07-02 14:18:35

标签: c++ static-methods

这可能很简单,但我无法理解。

在我的main.cpp中我有:

Image image("/path/to/image.png");
int* h = ImageProcessor::dailyPrices(image);

在我的ImageProcessor.h中,我有:

//Maybe something is wrong with this? I am trying to forward declare.
namespace Magick
{
class Image;
}

class ImageProcessor {
public:
ImageProcessor();
virtual ~ImageProcessor();
static int* dailyPrices(const Magick::Image& abp_chart);
};

在ImageProcessor.cpp中我有

int* dailyPrices(const Image& abp_chart)
{

但是在尝试编译时,我在main.cpp中收到以下错误:

path/to/VendBot.cpp:17: undefined reference to `ImageProcessor::dailyPrices(Magick::Image const&)'

3 个答案:

答案 0 :(得分:4)

定义dailyPrices函数时缺少类名:

int* ImageProcessor::dailyPrices(const Image& abp_chart)
//   ______________^ 
{
    // 
}

答案 1 :(得分:0)

您需要在方法定义中添加ImageProcessor::

int* ImageProcessor::dailyPrices(const Image& abp_chart)
     ^^^^^^^^^^^^^^^^

答案 2 :(得分:0)

dailyPrices需要位于ImageProcessor命名空间中:

int* ImageProcessor::dailyPrices(const Image& abp_chart)