"错误:没有用于调用的匹配函数",我无法更改结构的定义

mjc*_*msp -3 c++ c++98

我试图使用以这种方式定义的结构:

在文件编号1中定义了结构(我无法修改此文件):

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

        int a;
    };
Run Code Online (Sandbox Code Playgroud)

然后在头文件中,struct被声明为类的变量:

prueba st_prueba;
Run Code Online (Sandbox Code Playgroud)

然后在源文件中,结构的构造函数在类的成员函数中调用:

st_prueba(3);
Run Code Online (Sandbox Code Playgroud)

我收到了下一个错误:

错误:没有匹配函数来调用'main():: prueba :: prueba()'

我在其他问题中看到了这个问题的答案:

错误:没有匹配的函数用于调用

他们说你必须添加默认构造函数.但是在我的情况下,我无法控制结构的定义.

这个想法是有两个不同的步骤,以便将声明放在一个文件中,并在另一个文件中调用构造函数.

我该怎么做才能使用这段代码?

lub*_*bgr 5

如果没有默认构造函数,则必须调用现有构造函数.这就是你目前没有做的事情.但这应该工作:

prueba st_prueba(3);
Run Code Online (Sandbox Code Playgroud)