在构造函数中使用非静态成员函数无效

时间:2014-07-11 09:23:23

标签: c++

我有这堂课:

class Displayer
{
public:
  enum FlagDisplay { NOT_DISPLAY, DISPLAY };

  Displayer() {}
  ~Displayer() {}

  Displayer::FlagDisplay bar1() const { return DISPLAY; }
  Displayer::FlagDisplay bar2() const { return NOT_DISPLAY; }

  void displayImg(const cv::Mat& image, const std::string& name, FlagDisplay flg)
  {
    if (flg == DISPLAY)
    {
      cv::imshow(name, image);
      cv::waitKey();
    }
  }

  void closeAllWindows() { cv::destroyAllWindows(); }
};

我有另一个类Displayer成员的类。当我尝试在构造函数中初始化它时,我得到一个error: invalid use of non-static member function。我没有看到以静态方式Displayer::)调用任何函数。因为代码非常大,我还需要搜索什么才能找到问题?


该类的构造函数是:

RunSolution::RunSolution(const cv::BOWImgDescriptorExtractor& bowDEIn, const ConfigFile& configFileIn,
                         const Auth& authIn, const ClassifierPtr& classifierIn, const Displayer& displayerIn)
  : m_bowDE(bowDEIn),
    m_configFile(configFileIn),
    m_io(m_configFile.getOutputFolder),
    m_s3Service(authIn),
    m_classifier(classifierIn),
    m_detector(cv::FeatureDetector::create(m_configFile.getClassifierDetectorType())),
    m_display(displayerIn) {}
//     error here       ^^

0 个答案:

没有答案