c++ - 数组类的构造函数

标签 c++ arrays class constructor

我在这段代码中遇到错误

class business
{
    public:
        business();  // Default Constructor
        business(string busines,int r)
        {
            busines=busines;
            ratings=r;
        }   // constructor;

    private:

        string busines;
        int ratings;
        int items_owned;
        int business_cancellation;
        int biz_size_of_building;
        int biz_shipping_method;
};

int main(int argc, char *argv[])
{
    business b[10];

    b[b_count](busines,rating);

    return 0;
}

它给了我以下错误(http://ideone.com/FfajNS):

prog.cpp: In function ‘int main(int, char**)’:
prog.cpp:32:32: error: no match for call to ‘(business) (std::string&, int&)’

最佳答案

您正试图在一个已构造的对象上调用构造函数……在创建数组期间调用了默认构造函数,因此您不能再次“构造”该对象。对于您的应用程序,您可能希望研究使用 std::vector,您可以在其中使用从一组默认参数初始化的对象创建类似数组的容器。

例如,你可以这样做:

std::vector<business> array(10, business(business_string, rating));

关于c++ - 数组类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15416527/

相关文章:

c++ - 一维不变一维可变的容器

arrays - 使用给定顺序排列数组而不复制数组或更改顺序

c - 如何在c中找到具有正数和负数的二维数组的总平均值

javascript - 将 javascript 对象转换到 Controller 的模型中

c++ - 非急切克林星 boost 灵气

c++ - 与当前 OpenGL 上下文对应的唯一 OpenCL 上下文

c++ - 具有特定参数的仿函数的概念或特征?

c++ - 从函数中获取两个数组并将它们存储在 C++ 中的不同数据类型数组中

class - Swift 类省略带闭包的括号 : syntactic sugar or something else?

java: 为什么我必须在构造函数的第一行写 super()