我得到了一个相当奇怪的错误,无法弄清问题在哪里。 首先,我有这个代码:
#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?
感谢您的帮助!