[C con Clase] Consejo donde definir clases

Jorge Vega Sanchez memmaker650 en gmail.com
Vie Ene 7 21:30:32 CET 2011


Bueno vuelvo a la carga porque como buen zoquete tengo problema al compilar una clase.

La clase está creada con templates para hacerla más genérica.
La cosa es que si lo hago en todo en un mismo fichero me funciona todo perfectamente pero ahora lo he divido en 3 ficheros ( 2 para la clase y el principal) y me compila pero no me enlaza. Al enlazar me dice que los métodos de clase no están definidos.

Undefined symbols:
  "almacen<int>::almacen(int)", referenced from:
      _main in main.o
  "almacen<int>::meter(int)", referenced from:




Si alguien pudiera decirme que hago mal se lo agradecería mucho porque llevo 2 horas tocando cosas al tun tun y al final voy a fastidiar más que arreglar.

Un saludo.
El 04/01/2011, a las 12:54, Steven Davidson escribió:

> Hola Jorge,
> 
> 2011/1/3 Jorge Vega Sanchez <memmaker650 en gmail.com>
> Vale una duda que me surge.
> 
> Y como defino el ambito de las metodos de clase. Es decir como pongo cuales son public y sobre todo los que son private.
>  
> Se trata de los permisos de acceso a los miembros de una estructura (struct, class, o union) y no del ámbito. El ámbito es la estructura en sí.
>  
> Indicas estos permisos dentro de la estructura. En C++, escribe 'public', 'private', o 'protected' seguido de dos puntos. Por ejemplo,
>  
> class Algo
> {
> private:
>   int dato;
>  
> public:
>   Algo();
>   int valor() const;
>   void valor( int nuevo );
> };
>  
> Hablamos de este tema en el capítulo 28 de nuestro curso de C++. El enlace es: http://c.conclase.net/curso/index.php?cap=028#CLA_ACCESO
>  
> Otra preguntilla, que significa el "#pragma once".
>  
> #pragma es una directiva estándar del precompilador. Sin embargo, lo que sigue no es estándar. Esta directiva sirve para comunicarse con el compilador. Muchos compiladores aceptan esta "orden" para indicar que este fichero de cabecera se debe incluir una sola vez.
>  
> En lugar de usar esta directiva, puedes usar otras directivas del precompilador para implementar la misma idea. Por ejemplo,
>  
> #ifndef _A_H_
>   #define _A_H_
> ...
> #endif
>  
>  
> Espero haber aclarado las dudas.
>  
> Steven
>  
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110107/5c258550/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: clase.zip
Type: application/zip
Size: 3182 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110107/5c258550/attachment.zip>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110107/5c258550/attachment-0001.html>


Más información sobre la lista de distribución Cconclase