2015-01-24 6 views
-1
class tablero 
{ 
int filas_; //initialize both ints 
int columnas_; 
vector < vector <casilla> > casilla_; // a vector of vectors of Casillas 
public: 
tablero(int filas, int columnas) 
// The above is an initialization list 
// We initialize casilla_ as a vector of filas vectors of columnas Casillas 
{ 

    filas_=filas; //put the rows in the row int 
columnas_=columnas; // and the columns in the columns 
casilla_ = filas , vector<casilla>(columnas); // and set the dimensions of the vector of vectors. 

} 

Это не дает мне «не подходит для„оператора =“(типы операндов„станд :: вектор>“и„INT“)» Ошибка в casilla_ = филе , vector (columnsas) .filas (rows) columnas (columns).Ошибка при предоставлении вектора векторов его размеры

Я думаю, что все в порядке, но я не знаю, почему эта ошибка появляется. В Tablero.h мой конструктор:

class Tablero { 
public: 
Tablero(int filas,int columnas); //I added both ints because I had an error in the main. 
virtual ~Tablero(); 
void setcol(int n); //other methods 
void setfilas(int n); 
vector<vector<casilla> > getCasilla(); 
void setCasillac(int n ,int t, casilla c); 
casilla getCasillac(int n ,int t); 
}; 

Если вам нужен класс Casilla и другие вещи просто сказать, и я отправлю его. Я новичок в C++ и eclipse, я привык к Netbeans и java, и я не знаю, как обращаться с этими исключениями.

Спасибо всем, кто может мне помочь, и, конечно, если вам нужен еще один код, скажите, и я отредактирую этот пост и поставлю его.

ответ

0

ошибка говорит вам, что вы не можете назначить Int к вектору:

использование: cassilla_.reserve (фил); вектор (колонка);

Или используйте указатели на них и передайте значение во время строительства.

+0

Он работает для остановки ошибки, но в Casilla.h теперь отображается ошибка: неопределенная ссылка на 'vtable для std :: casilla '. И в каждом методе, который я использую Tablero для доступа к Casilla (например, t.getCasillac (int fila int columna)), отображается ошибка, которой не было. – flaixman

+0

Это потому, что в пространстве имен std нет такой вещи, как casilla Можно ли предположить, что вы строите класс, который будет представлять собой сетку данных, т. Е. Таблицу базы данных. Если это так, вам нужно только сохранить значение столбцов один раз как int, поскольку ширина таблицы должна быть постоянной Если вы хотите, чтобы вы могли опубликовать casilla.h и .cpp и, возможно, лучшее описание того, чего вы пытаетесь достичь. – Moo

Смежные вопросы