我在这段代码中遇到错误
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/