Hola.
No probé si el código funciona correctamente o hace lo que debiera, pero para que compile sin error aplica las correcciones marcadas con: <<==.
Clase.h :
Código PHP:
#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
Clase.cpp:
Código PHP:
#include "clase.h"
#include <string.h> // <<==
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)); // <<==
}
Te adjunto el código corregido.
Saludos