不断提示Error 1 error C2536: 'knapsack::knapsack::item' : cannot specify explicit initializer for arrays
但是并没有具体说哪一行。 也没看出来为什么数组那里不能赋予初值。求帮助
错误段代码如下
#include <iostream>
#include <string>
using namespace std;
class item_t
{
public:
string *name;
int weight, value;
item_t();
item_t(string name_0, int weight_0, int value_0);
~item_t();
};
item_t::item_t()
{
*name = "";
weight = 0;
value = 0;
}
item_t::item_t(string name_0, int weight_0, int value_0)
{
*name = name_0;
weight = weight_0;
value = value_0;
}
item_t::~item_t()
{
delete[] name;
}
class knapsack : public item_t, public solution
{
public:
item_t item[22] = {
{ "map", 9, 150 },
{ "compass", 13, 35 },
{ "water", 153, 200 },
{ "sandwich", 50, 160 },
{ "glucose", 15, 60 },
{ "tin", 68, 45 },
{ "banana", 27, 60 },
{ "apple", 39, 40 },
{ "cheese", 23, 30 },
{ "beer", 52, 10 },
{ "suntancream", 11, 70 },
{ "camera", 32, 30 },
{ "T-shirt", 24, 15 },
{ "trousers", 48, 10 },
{ "umbrella", 73, 40 },
{ "waterproof trousers", 42, 70 },
{ "waterproof overclothes", 43, 75 },
{ "note-case", 22, 80 },
{ "sunglasses", 7, 20 },
{ "towel", 18, 12 },
{ "socks", 4, 50 },
{ "book", 30, 10 } };
void optimal(int weight, int idx, solution *s);
const int n_items = sizeof(item) / sizeof(item_t);
};
1.数组赋值因你的item_t为类,所以无法使用{}进行赋值操作
//使用如下方式赋值2.在类内不能直接并定义数组,你需要先声明静态成员变量,然后再外部定义
class knapsack : public solution