Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > C / C++ > ctor de clase con plantillas no reconocido cuando separo la implementacion de la declacion
-Foros de debate

C / C++
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

ctor de clase con plantillas no reconocido cuando separo la implementacion de la declacion
Enviado por breno el día 15 de junio de 2008

El problema es este,
Tengo el siguiente codigo en un archivo "ClassOne.h":
//ClassOne.h
template <typename D>
class ClassOne
{
public:
ClassOne();
};

template <typename D>
ClassOne<D>::ClassOne()
{
}
//Fin de ClassOne.h
Y en el main :
//Main.cpp
#include "ClassTwo.h"
#include "ClaseOne.h"
int main(int argc, char * argv [])
{
ClassOne<ClassTwo>* c= new ClassOne<ClassTwo>() ;
return 0;
}
//fin de Main.cpp
Este codigo compila perfectamente,

Ahora cuando quiero poner la implemnetacion en un archivo diferente como se debe hacer:

//ClassOne.cpp
#include "ClassOne.h"
template <typename D>
ClassOne<D>::ClassOne()
{
}
//
El compilador arroja un mensaje de error:
undefined reference to `ClassOne<ClassTwoB>::ClassOne()'
collect2: ld devolvió el estado de salida 1

Es el mismo codigo solo que el que da error esta mas organizado.
Me gustaria saber cual es el error, que estoy omitiendo para que el codigo pueda funcionar con la implementacion separada. Tiene que ver con el uso de plantillas, ya que cuando hago lo mismo con otra clase que no usa plantillas no hay problema.

Desde ya gracias por cualquier ayuda.



 

Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network