C/Visual C - Porque me da error este codigo?

 
Vista:

Porque me da error este codigo?

Publicado por Oliver Ramirez (339 intervenciones) el 29/05/2002 16:33:27
class matriz
{
public:
matriz(int,int);
~matriz();
matriz a_traspuesta();
void mostrar();
private:
double* puntero;
int filas;
int colub;

};
//------------------------------------------------------------------
matriz::matriz(int tfilas,int tcolub)
{
puntero = new double[tfilas][tcolub];
filas = tfilas;
colub = tcolub;
}
El compilador me da este error y no se por que...

20 ...\main.cpp
assignment to `double *' from `double (*)[((tcolub - 1) + 1)]'
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Porque me da error este codigo?

Publicado por chuidiang (677 intervenciones) el 30/05/2002 07:23:14
No puedes hacer
puntero = new double[tfilas][tcolub];
Tienes que hacer
puntero = new double [tfilas*tcolub]
Haciendo esto, luego no podrás hacer
puntero[i][j]
tendrás que hacer
puntero[i*tcolub + j]

Si quieres utilizar el doble corchete, lee más arriba en el foro una pregunta sobre guardar strings, que es el mismo problema que el tuyo. Cambia char por double.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Porque me da error este codigo?

Publicado por Oliver Ramirez (339 intervenciones) el 30/05/2002 17:45:45
No podria sobrecargar el operador [ ] para simplificar mas este asunto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Porque me da error este codigo?

Publicado por chuidiang (677 intervenciones) el 31/05/2002 07:31:45
Deberías hacerte una clase matriz encargada de reservarse y liberar su propia memoria. De esta forma todo el lio de news y deletes quedaría hecho una vez dentro de la clase.
Después en la clase si puedes sobrecargar los operadores [] para acceder a los elementos de la matriz de la forma habitual.
Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar