PCConsolasDescargasForosGameShopCompra y Venta
Google
 

Volver 3DG > Comunidad > Club 3DG > Estudios y Empleos > Ayuda con templates en C++
Registrarse FAQ Listar Miembros

Estudios y Empleos Buscás u ofrecés trabajo?. Tenés dudas de qué estudiar o donde?. Ilustrate acá.


Responder
 
Herramientas Modo de visualizacion
Old 10 Jun 2008, 11:25 PM   #1
Tampon Terrorizer
 
The Wicker Man's Avatar
 
Registración: Sep 2004
Ubicación: Villa Luzuriaga (no es una villa eh)
Mensajes: 868
Ayuda con templates en C++
Enviar Mensaje a GoogleEnviar Mensaje a FaceBookEnviar Mensaje a Meneame Enviar Mensaje a TechnoratiEnviar Mensaje a Yahoo!Enviar Mensaje a Delicious

Recurro a ustedes para ver si me pueden solucionar un problema que tengo con un tp en el que hay que implementar templates. El tp consiste en implementar una clase Sistema (de ecuaciones) que a traves de una funcion calcule la solucion del sistema. La clase Sistema tiene como atributos una matriz tipo Matriz (clase Matriz) y un vector tipo Vector. El tp ya esta terminado, pero lo unico que falta es implementar las clases Matriz y Vector con templates y ahi surgen los problemas de compilacion. Lo que lei y me enseñaron es que para implementar una clase con template hay que definir antes de la clase:

//Clase.h
template <class T>
class Clase{
T atributo1;
(...)
}

Cuando quiero instanciar un objeto de esa clase con T = int hago
Clase <int> objeto;

La pregunta es la siguiente. En otra clase Clase2, que tiene un atributo del tipo de Clase, como me refiero a esa clase, que usa templates?
Si lo hago asi me dice que Clase no es un tipo

//Clase2.h
class Clase 2{
Clase atributo1;
}

Y si hago asi me dice que T no esta definido en el scope

//Clase2.h
class Clase 2{
Clase<T> atributo1;
}

Tambien el problema lo tengo en el constructor de Clase2, que recibe un tipo Clase:
Clase2(Clase&);
si lo dejo asi, supongamos que en el main defino
Clase <float> objeto;
Clase2(objeto);

me dice que no encuentra el constructor que recibe Clase2(Clase<float>&).

Por otro lado, me exigen tener las definiciones de las clases en archivos .h separados, la implementacion de las funciones de cada clase en un .cpp respectivo y luego tener el main.cpp aparte.

Como tendria que ser la sintaxis para que esto ande?

Muchas gracias
__________________
R.I.P. Cryptopsy (1992 - 2008)


"Cuando la vida te dé la espalda, mandale blas bit..."
The Wicker Man is offline   Citar mensaje
Old 11 Jun 2008, 03:50 PM   #2
v=2o9tn3LBq0k NOOOOO
 
sidpunk77's Avatar
 
Registración: Jan 2004
Ubicación: Morón!
Mensajes: 3,273
Re: Ayuda con templates en C++
Enviar Mensaje a GoogleEnviar Mensaje a FaceBookEnviar Mensaje a Meneame Enviar Mensaje a TechnoratiEnviar Mensaje a Yahoo!Enviar Mensaje a Delicious

Hay un subforo de programación, fijate que ahí seguro te dan una mano.

Está dentro del subforo de software.
sidpunk77 is offline   Citar mensaje
Old 11 Jun 2008, 04:13 PM   #3
NERV op
 
BroS's Avatar
 
Registración: May 2000
Ubicación: NeoTokyo3
Mensajes: 4,470
Re: Ayuda con templates en C++
Enviar Mensaje a GoogleEnviar Mensaje a FaceBookEnviar Mensaje a Meneame Enviar Mensaje a TechnoratiEnviar Mensaje a Yahoo!Enviar Mensaje a Delicious

Quote:
Originally Posted by The Wicker Man Ver Mensaje
Recurro a ustedes para ver si me pueden solucionar un problema que tengo con un tp en el que hay que implementar templates. El tp consiste en implementar una clase Sistema (de ecuaciones) que a traves de una funcion calcule la solucion del sistema. La clase Sistema tiene como atributos una matriz tipo Matriz (clase Matriz) y un vector tipo Vector. El tp ya esta terminado, pero lo unico que falta es implementar las clases Matriz y Vector con templates y ahi surgen los problemas de compilacion. Lo que lei y me enseñaron es que para implementar una clase con template hay que definir antes de la clase:

//Clase.h
template <class T>
class Clase{
T atributo1;
(...)
}

Cuando quiero instanciar un objeto de esa clase con T = int hago
Clase <int> objeto;

La pregunta es la siguiente. En otra clase Clase2, que tiene un atributo del tipo de Clase, como me refiero a esa clase, que usa templates?
Si lo hago asi me dice que Clase no es un tipo

//Clase2.h
class Clase 2{
Clase atributo1;
}

Y si hago asi me dice que T no esta definido en el scope

//Clase2.h
class Clase 2{
Clase<T> atributo1;
}

Tambien el problema lo tengo en el constructor de Clase2, que recibe un tipo Clase:
Clase2(Clase&);
si lo dejo asi, supongamos que en el main defino
Clase <float> objeto;
Clase2(objeto);

me dice que no encuentra el constructor que recibe Clase2(Clase<float>&).

Por otro lado, me exigen tener las definiciones de las clases en archivos .h separados, la implementacion de las funciones de cada clase en un .cpp respectivo y luego tener el main.cpp aparte.

Como tendria que ser la sintaxis para que esto ande?

Muchas gracias
mucho c++ no manejo, pero el problema que tenes es que cuando usas algo de la clase "Clase" (podrias empezar por ponerle nombres mas felices) al ser un template tenes que ponerle el tipo en el cual se instancia. no podes hacer esto:

//Clase2.h
class Clase 2{
Clase atributo1;
}

porque directamente no le pones ningun tipo.....y tampoco podes hacer eso:

//Clase2.h
class Clase 2{
Clase<T> atributo1;
}

porq T ahi no existe, no es ningun tipo.


El otro problema que mencionas te pasa lo mismo:

Clase2(Clase&);

ahi estas usando Clase sin parametrizar.

Por lo que decis estas intentando definir dos clases, Matriz y Vector. Asumo que Vector es tu clase parametrica "Clase" y la Matriz es la "Clase2" y queres enchufarle los vectores a la matriz (o sea q la matriz sea una coleccion de vectores). Mas alla de los problemas que tenes, me parece q conceptualmente está mal. Un vector es una matriz, hace la clase paramatrica matriz y listo, olvidate del vector.
__________________
VENDO WII COMPLETISIMA -> http://foros.3dgames.com.ar/compra_v..._wii_full.html

CAMBIO IPHONE 8GB por N95-4 -> http://foros.3dgames.com.ar/compra_v...r_n95-4_a.html
BroS is online now   Citar mensaje

Responder


Herramientas
Modo de visualizacion


Similar Threads
Tema Iniciado Por Foro Respuestas Ultimo Mensaje
Ayuda para configuracion de Templates... UrUsss Ayuda 31 17 Jul 2008 05:08 PM
Templates??? dapilge Foro Oficial Simulador Turismo Carretera 25 30 Nov 2007 07:31 PM
templates en php TesTer Programacion 20 7 Apr 2007 12:57 AM




Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
Copyright 1999-2008 3DGames Argentina - Todos los derechos reservados.
Free Ringtone | 5000 Free Icons | Daily Horoscopes | Loan | Fairings
Diseño por Estudio Maya  |  Copyright 1999-2008 3DGames Argentina - Todos los derechos reservados  |  Términos y condiciones