/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

error LNK2005 (sobre enlazado)

 
      Índice del Foro elrincondelc.com -> Otros lenguajes
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Masakre



Registrado: 06 Jun 2012
Mensajes: 245

MensajePublicado: 29/03/2013 8:05 am
Título: error LNK2005 (sobre enlazado)

Hasta antes el programa funcionaba correctamente.

En realidad son muchos ficheros .h bajo un mismo proyecto de Windows Forms. Pero el problema reside en dos: Preguntas.h y CPanel.h

Cuando estaba bien:
En Preguntas.h estaba la clase AdmPreg con su respectivo constructor. Recibía dos parámetros que servían para inicializar a variables públicas de la misma clase (las hice públicas para no escribir 2 métodos get que sirvan para obtener esas variables, creo que es una mala práctica y ya no lo volveré a hacer, pero funcionaba bien).
Es decir, en public había algo como lo siguiente:
Código:
        size_t CantEnun, PPP;
   AdmPreg(size_t _NroPreg, size_t _Ptos)
   {
      CantEnun = _NroPreg;
      PPP = _Ptos;
   }


En CPanel yo creaba una instancia de la clase llamada Examen, dentro de una función.
Pero luego quise volver a acceder a esa instancia desde otra función y no era posible. Entonces se me ocurrió querer definir Examen fuera de todas las funciones, de modo que sea global.

Pero al declararla como global, me decía que no hacía uso del constructor.
Y yo no podía hacer uso del constructor porque los argumentos que debía pasarle debían ser antes leídos (y eso estaba en otra función).

Entonces quité el constructor e hice que esa asignación lo realice otro método.
Es decir, quedó así:
Código:
   void DefinirDim(size_t _NroPreg, size_t _Ptos)
   {
      CantEnun = _NroPreg;
      PPP = _Ptos;
   }

Y las variables CantEnun y PPP las puse como privadas.

Dije, así podré declarar Examen como una instancia global de la clase AdmPreg porque ya no tiene constructor.
Pero, en cuanto hice esto, saltaron 2 errores totalmente desconocidos para mí:

Código:
Error   2   error LNK1169: se encontraron uno o más símbolos definidos simultáneamente   E:\Developer Zone\Aplicaciones de escritorio\Proyectos C++\C++ con Visual Studio\WindowsForms\MyIdeas\VirtualExam\Debug\VirtualExam.exe   1


Código:
Error   1   error LNK2005: ya se definió "class AdmPreg Examen" (?Examen@@$$Q3VAdmPreg@@A) en CPanel.obj   E:\Developer Zone\Aplicaciones de escritorio\Proyectos C++\C++ con Visual Studio\WindowsForms\MyIdeas\VirtualExam\VirtualExam\VirtualExam.obj


He buscado por internet sobre dicho error y dice que son errores de enlazado... pero la verdad yo no he alterado para nada el orden de enlazado o cosas así.
También borré VirtualExam.obj para que vuelva a generarse, pensando que eso sería una solución jeje, pero nada.

(Incluso en Preguntas.h he intentado declarar AdmPreg Examen y luego en CPanel.h ponerlo junto a extern, para que lo enlace con la definición que ya se hizo en Preguntas.h)

Gracias de antemano.
Volver arriba
      Índice del Foro elrincondelc.com -> Otros lenguajes
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com