& quot; Нет соответствующей функции для вызова … & quot; при наследовании

Я получил довольно странную ошибку, не могу понять, где проблема.
Во-первых, у меня был этот код:

#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 :: ratio :: ratio () »…», что верно; поэтому я выясняю, как работает Кастор, и нахожу класс «сопрограммы». Поэтому я сделал свой класс унаследованным от сопрограммы, дав следующий код:

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: error: нет подходящей функции для вызова ‘castor :: Relations :: Relations () …’

Затем я подумал об удалении наследования следующим образом:

class LineValid {//...

а также

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

И мой компилятор говорит: «linevalid.cpp: 3: 45: ошибка: нет соответствующей функции для вызова ‘castor :: Relations :: Relations ()’ …»

Так что я немного смущен этой ошибкой. Откуда это взялось ? Какие дополнительные тесты я могу сделать, чтобы понять, что происходит?

Спасибо за помощь !

0

Решение

Задача ещё не решена.

Другие решения