0
class Zbiornik
{
public:
    Zbiornik(int rozmiar)
    {
        int liczby[rozmiar];
    }
};

在代码中:

Zbiornik cyfry;
cyfry = liczby;

有人可以解释如何解决main.cpp:67:10: error: no matching function for call to 'Zbiornik::Zbiornik()'以及为什么会这样吗?

我无法弄清楚我错过了什么,非常感谢您的帮助,

4

3 回答 3

4

由于您定义了用户定义的构造函数,因此编译器不会为您生成隐式默认构造函数。这个想法是,如果它是隐式生成的,它就不会做正确的事情,因为你有一个用户定义的 ctor。因此,您必须自己定义它:

Zbiornik(){...}

但是,您有多个问题cyfry = liczby;并且int liczby[rozmiar];无法编译,我不知道您要对这些行做什么。

一方面,rozmiar不能在常量表达式中使用。

于 2013-09-04T11:07:48.147 回答
0

您尚未定义默认构造函数(不带参数的构造函数)。您需要添加:

Zbiornik::Zbiornik(),或者,将整数传递给构造函数。

于 2013-09-04T11:09:44.893 回答
0

这一行:

 Zbiornik cyfry; 

调用Zbiornik()你的类的构造函数。

但是你的类只有Zbiornik(int rozmiar)构造函数。而且由于您已经定义了构造函数,编译器不会为您生成默认Zbiornik()构造函数。

添加构造函数

Zbiornik() {}

到你的班级。

于 2013-09-04T11:11:20.817 回答