C/Visual C - DOS PROBLEMAS

 
Vista:

DOS PROBLEMAS

Publicado por sonsoles (14 intervenciones) el 09/03/2001 20:18:54
HOLA A TODOS, UTILIZO EL BUILDERR c++3 Y TENGO DOS PROBLEMAS:

1) Public symbol 'symbol' defined in both module 'module1' and 'module2' ¿cómo puedo hacer que me desaparezca?¿es perjudicial?

2) Tengo una función "Template" en un módulo "Modulo.cpp":
template<class T>
void load (char *archivo,var<T> *v,long *p)
{
...
}
para poder ejecutarla en los demás módulos tengo que meter su definición en "Modulo.h" con extern, pero o lo estoy haciendo mal o no se hace así porque me da error. La forma
en que me sale es incluyendo en los demás módulos:
#include "Modulo.cpp"
pero no sé si esto hace que el código me aumente ya que no pongo las definiciones de las
funciones, sino las propias funciones en sí, y esto incluido en varios módulos.

Un saludo y gracias de antemano
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:DOS PROBLEMAS

Publicado por Antonio M. Estevez (11 intervenciones) el 12/03/2001 08:55:02
Debes diferenciar entre declarar una función y definir esa función. Por ejemplo, en un fichero llamado Modulo.h, declaras la función:

template<class T>
void load (char *archivo,var<T> *v,long *p);

y en otro fichero, por ejemplo, Modulo.cpp la defines:

template<class T>
void load (char *archivo,var<T> *v,long *p)
{
...
}

En cualquier otro módulo (unit) en el que necesites usar la función, añades:
#include "Modulo.h"


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