problemas en la creación de objetos en c++
Publicado por Thyet (2 intervenciones) el 23/05/2002 03:44:19
Hola, estoy haciendo una aplicación en C++ bajo Linux. Bien, para resumir el problema que tengo en mi aplicación he llevado tal problema a una mini aplicación para entenderlo mejor. La cuestión es que si hago uso de dos clases, una de las cuales la vinculo con la otra por medio de la creación de una instancia, al hacer uso de esta instancia en la primera clase para llamar a una supuesta función de la segunda clase, linux me dice que no eso no es válido dándome el siguiente error: "undefined reference". La verdad? no veo razón alguna de ello. Para que ustedes vean a continuación les pego el simple código del que les hablo.
Cuatro ficheros : main.cpp y main.h, y, pipi.cpp y pipi.h. El main.h es el siguiente:
#include <stdio.h>
#include <stdlib.h>
#include "pipi.h"
class TMain
{
private:
int i;
TPipi* fPipi;
public:
TMain();
~TMain();
void Menu();
};
El main.cpp es este:
#include "main.h"
TMain::TMain()
{
i = 0;
fPipi = new TPipi();
}
void TMain::Menu()
{
i = fPipi->GetNumber();
printf("El numero es %d\n",i);
}
int
main(void)
{
TMain* M = new TMain();
M->Menu();
}
TMain::~TMain()
{
}
---------
El pipi.h es el siguiente:
#include <stdio.h>
#include <stdlib.h>
class TPipi
{
private:
int f;
public:
TPipi();
~TPipi();
int GetNumber();
};
----
Y finalmente el pipi.cpp es:
#include "pipi.h"
TPipi::TPipi()
{
f = 5;
}
int TPipi::GetNumber()
{
return(f);
}
TPipi::~TPipi()
{
}
El error según el propio compilador de Linux es el que les indico a continuación:
In function 'TMain::TMain(void)':
... undefined reference to 'TPipi::TPipi(void)'
In function 'TMain::Menu(void)':
... undefined reference to 'TPipi::GetNumber(void)'
Sinceramente yo no comprendo tal error, toda ayuda que me puedan dar se lo agradecería en el alma. Si me pudieran dar una solución cuanto antes mejor todavía.
Un saludo y gracias!
Cuatro ficheros : main.cpp y main.h, y, pipi.cpp y pipi.h. El main.h es el siguiente:
#include <stdio.h>
#include <stdlib.h>
#include "pipi.h"
class TMain
{
private:
int i;
TPipi* fPipi;
public:
TMain();
~TMain();
void Menu();
};
El main.cpp es este:
#include "main.h"
TMain::TMain()
{
i = 0;
fPipi = new TPipi();
}
void TMain::Menu()
{
i = fPipi->GetNumber();
printf("El numero es %d\n",i);
}
int
main(void)
{
TMain* M = new TMain();
M->Menu();
}
TMain::~TMain()
{
}
---------
El pipi.h es el siguiente:
#include <stdio.h>
#include <stdlib.h>
class TPipi
{
private:
int f;
public:
TPipi();
~TPipi();
int GetNumber();
};
----
Y finalmente el pipi.cpp es:
#include "pipi.h"
TPipi::TPipi()
{
f = 5;
}
int TPipi::GetNumber()
{
return(f);
}
TPipi::~TPipi()
{
}
El error según el propio compilador de Linux es el que les indico a continuación:
In function 'TMain::TMain(void)':
... undefined reference to 'TPipi::TPipi(void)'
In function 'TMain::Menu(void)':
... undefined reference to 'TPipi::GetNumber(void)'
Sinceramente yo no comprendo tal error, toda ayuda que me puedan dar se lo agradecería en el alma. Si me pudieran dar una solución cuanto antes mejor todavía.
Un saludo y gracias!
Valora esta pregunta


0