Определения класса C ++ ограничены тем, что вы не можете инициализировать элементы в строке, где вы их объявляете. Обидно, но в какой-то степени это исправлено в C ++ 0x.
В любом случае, вы можете предоставить параметры конструктора с синтаксисом ctor-initializer
. Возможно, вы не видели этого раньше, но:
struct T {
T() : x(42) {
// ...
}
int x;
};
- это то, как вы инициализируете участника, когда вы могли ранее (и потерпели неудачу) с int x = 42;
.
Итак:
class Grid {
public:
Grid();
void display_grid();
void output_grid();
private:
vector<int> row;
vector<vector<int> > puzzle;
int rows_;
int columns_;
};
Grid::Grid()
: row(5, 0)
, puzzle(9, row)
{
// ...
};
Надеюсь, это поможет.