“继承时没有匹配的呼叫功能...”

时间:2015-08-05 05:51:49

标签: c++ inheritance g++ castor

我得到了一个相当奇怪的错误,无法弄清问题在哪里。 首先,我有这个代码:

#include <vector>
#include <castor.h>

typedef castor::lref<int> lint;

class LineValid : public castor::relation {
    public:
        LineValid(lint* data, size_t size);
        LineValid(std::vector<lint> data);
        bool operator()() const;

    private:
        void _establishPermutation();
        std::vector<lint> _data;
        castor::relation _permutation;
};

在livevalid.h文件中,并且:

#include "linevalid.h"

LineValid::LineValid(lint* data, size_t) : castor::relation {
    /* ... */
}

LineValid::LineValid(std::vector<lint> data) {
    /* ... */
}

/* ... */
linevalid.cpp中的

。我的编译器告诉我“linevalid.cpp:3:45:错误:没有匹配函数来调用'castor :: relation :: relation()'...”,这是真的;所以我想出了蓖麻的工作方式并找到了一个“Coroutine”课程。因此,我让我的类从Coroutine继承,给出以下代码:

class LineValid : public castor::Coroutine //...

LineValid::LineValid(lint* data, size_t size) : castor::Coroutine //...
LineValid::LineValid(std::vector<lint> data) : castor::Coroutine //...

在这里,我的编译器告诉我......完全相同的事情,即:“linevalid.cpp:3:45:错误:没有匹配函数来调用'castor :: relation :: relation()......'

然后我想要删除这样的继承:

class LineValid {//...

LineValid::LineValid(/*...*/) { //...

我的编译器说:“linevalid.cpp:3:45:错误:没有匹配函数来调用'castor :: relation :: relation()'......”

所以我在这里,对这个错误有点困惑。它从何而来 ?我可以做些什么来进一步了解什么是hapenning?

感谢您的帮助!

0 个答案:

没有答案