aguml
06-12-2016, 12:05:56
Hola amigos estoy teniendo problemas con una prueba que estoy haciendo con clases en C++Builder 6 y no acabo de ver el problema. Este es todo el codigo que llevo:
Main.cpp:
#include <iostream>
#include <fstream>
#include "clase.h"
using namespace std;
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
DATOS datos;
DatosPersonales claseDatos;
cout << "Introduce el ID: ";
cin >> datos.id;
cout << "Introduce el nombre: ";
cin >> datos.nombre;
cout << "Introduce los apellidos: ";
cin >> datos.apellidos;
cout << "Introduce la edad: ";
cin >> datos.edad;
claseDatos.SetData(&datos);
memset(&datos,0,sizeof(DATOS));
claseDatos.GetData(&datos);
return 0;
}
//---------------------------------------------------------------------------
clase.cpp:
#include "clase.h"
#include <cstring>
//---------------------------------------------------------------------------
DatosPersonales::~DatosPersonales(){
}
//---------------------------------------------------------------------------
DatosPersonales::DatosPersonales(){
}
//---------------------------------------------------------------------------
//Metodos para obtener informacion
int DatosPersonales::GetId(){
return Datos.id;
}
//---------------------------------------------------------------------------
void DatosPersonales::GetName(char *name){
strncpy(name,Datos.nombre,SIZEMAXNAME);
}
//---------------------------------------------------------------------------
void DatosPersonales::GetSpells(char *spells){
strncpy(spells,Datos.apellidos,SIZEMAXSPELLS);
}
//---------------------------------------------------------------------------
int DatosPersonales::GetAge(){
return Datos.edad;
}
//---------------------------------------------------------------------------
void DatosPersonales::GetData(DATOS *data){
memcpy(data,Datos,sizeof(DATOS));
}
//---------------------------------------------------------------------------
//Metodos para enviar informacion
void DatosPersonales::SetId(int id){
Datos.id=id;
}
//---------------------------------------------------------------------------
void DatosPersonales::SetName(char *name){
strncpy(Datos.nombre,name,SIZEMAXNAME);
}
//---------------------------------------------------------------------------
void DatosPersonales::SetSpells(char *spells){
strncpy(Datos.apellidos,spells,SIZEMAXSPELLS);
}
//---------------------------------------------------------------------------
void DatosPersonales::SetAge(int age){
Datos.edad=age;
}
//---------------------------------------------------------------------------
void DatosPersonales::SetData(DATOS *data){
memcpy(Datos,data,sizeof(DATOS));
}
//---------------------------------------------------------------------------
clase.h:
#ifndef claseH
#define claseH
#define SIZEMAXNAME 20
#define SIZEMAXSPELLS 30
typedef struct{
int id;
char nombre[SIZEMAXNAME];
char apellidos[SIZEMAXSPELLS];
int edad;
}DATOS;
class DatosPersonales{
private:
DATOS Datos;
public:
~DatosPersonales();
DatosPersonales();
//Metodos para obtener informacion
int GetId();
void GetName(char *name);
void GetSpells(char *spells);
int GetAge();
void GetData(DATOS *data);
//Metodos para enviar informacion
void SetId(int id);
void SetName(char *name);
void SetSpells(char *spells);
void SetAge(int age);
void SetData(DATOS *data);
}
//---------------------------------------------------------------------------
#endif
Y aqui los errores que me salen:
[C++ Warning] main.cpp(5): W8058 Cannot create pre-compiled header: header incomplete
[C++ Error] main.cpp(5): E2040 Declaration terminated incorrectly
[C++ Error] main.cpp(13): E2451 Undefined symbol 'cout'
[C++ Error] main.cpp(14): E2451 Undefined symbol 'cin'
Al dar el primer error se me queda en la linea del "using namespace std" y si la comento se me queda en la siguiente.
¿Alguien sabria decirme que puede estar pasando?
Main.cpp:
#include <iostream>
#include <fstream>
#include "clase.h"
using namespace std;
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
DATOS datos;
DatosPersonales claseDatos;
cout << "Introduce el ID: ";
cin >> datos.id;
cout << "Introduce el nombre: ";
cin >> datos.nombre;
cout << "Introduce los apellidos: ";
cin >> datos.apellidos;
cout << "Introduce la edad: ";
cin >> datos.edad;
claseDatos.SetData(&datos);
memset(&datos,0,sizeof(DATOS));
claseDatos.GetData(&datos);
return 0;
}
//---------------------------------------------------------------------------
clase.cpp:
#include "clase.h"
#include <cstring>
//---------------------------------------------------------------------------
DatosPersonales::~DatosPersonales(){
}
//---------------------------------------------------------------------------
DatosPersonales::DatosPersonales(){
}
//---------------------------------------------------------------------------
//Metodos para obtener informacion
int DatosPersonales::GetId(){
return Datos.id;
}
//---------------------------------------------------------------------------
void DatosPersonales::GetName(char *name){
strncpy(name,Datos.nombre,SIZEMAXNAME);
}
//---------------------------------------------------------------------------
void DatosPersonales::GetSpells(char *spells){
strncpy(spells,Datos.apellidos,SIZEMAXSPELLS);
}
//---------------------------------------------------------------------------
int DatosPersonales::GetAge(){
return Datos.edad;
}
//---------------------------------------------------------------------------
void DatosPersonales::GetData(DATOS *data){
memcpy(data,Datos,sizeof(DATOS));
}
//---------------------------------------------------------------------------
//Metodos para enviar informacion
void DatosPersonales::SetId(int id){
Datos.id=id;
}
//---------------------------------------------------------------------------
void DatosPersonales::SetName(char *name){
strncpy(Datos.nombre,name,SIZEMAXNAME);
}
//---------------------------------------------------------------------------
void DatosPersonales::SetSpells(char *spells){
strncpy(Datos.apellidos,spells,SIZEMAXSPELLS);
}
//---------------------------------------------------------------------------
void DatosPersonales::SetAge(int age){
Datos.edad=age;
}
//---------------------------------------------------------------------------
void DatosPersonales::SetData(DATOS *data){
memcpy(Datos,data,sizeof(DATOS));
}
//---------------------------------------------------------------------------
clase.h:
#ifndef claseH
#define claseH
#define SIZEMAXNAME 20
#define SIZEMAXSPELLS 30
typedef struct{
int id;
char nombre[SIZEMAXNAME];
char apellidos[SIZEMAXSPELLS];
int edad;
}DATOS;
class DatosPersonales{
private:
DATOS Datos;
public:
~DatosPersonales();
DatosPersonales();
//Metodos para obtener informacion
int GetId();
void GetName(char *name);
void GetSpells(char *spells);
int GetAge();
void GetData(DATOS *data);
//Metodos para enviar informacion
void SetId(int id);
void SetName(char *name);
void SetSpells(char *spells);
void SetAge(int age);
void SetData(DATOS *data);
}
//---------------------------------------------------------------------------
#endif
Y aqui los errores que me salen:
[C++ Warning] main.cpp(5): W8058 Cannot create pre-compiled header: header incomplete
[C++ Error] main.cpp(5): E2040 Declaration terminated incorrectly
[C++ Error] main.cpp(13): E2451 Undefined symbol 'cout'
[C++ Error] main.cpp(14): E2451 Undefined symbol 'cin'
Al dar el primer error se me queda en la linea del "using namespace std" y si la comento se me queda en la siguiente.
¿Alguien sabria decirme que puede estar pasando?