«ошибка: нет подходящей функции для вызова», и я не могу изменить определение структуры - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь использовать структуру, которая определена следующим образом:

в файле № 1 определена структура (я не могу изменить этот файл):

struct prueba
    {
        prueba(int const & a_):a(a_)
        {};

        int a;
    };

тогда в заголовке структура объявлена ​​как переменная класса:

prueba st_prueba;

тогда в исходном файле конструктор структуры вызывается в функции-члене класса:

st_prueba(3);

и я получаю следующую ошибку:

ошибка: не найдена соответствующая функция для вызова функции main () :: prueba :: prueba () '

Я видел ответ на эту проблему в других вопросах:

ошибка: нет соответствующей функции для вызова

где говорят, что вы должны добавить конструктор по умолчанию. Однако в моем случае я не могу контролировать определение структуры.

Идея состоит в том, чтобы сделать два разных шага, чтобы поместить объявление в один файл и вызов конструктора в другом файле.

Как мне это сделать, чтобы иметь возможность использовать этот код?

1 Ответ

0 голосов
/ 28 июня 2018

При отсутствии конструктора по умолчанию вы должны вызвать существующий. Это то, что вы сейчас не делаете. Но это должно работать:

prueba st_prueba(3);
...