UTNianos

Versión completa: [Info 2] duda con uso de string
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola, tengo un problema al utilizar un tipo de dato string, tengo la siguiente clase y luego intento implementar un metodo para agregar datos. Pongo el codigo y al final el error que me tira:
Clase:


class alumnos
{
protected:
int *legajo;
std::string *nombre;
int cant;
int tam;
public:
alumnos(int=10);//Tamaño cantidad de alumnos.
~alumnos();
void addinfo(int, std::string);

friend std::ostream& operator <<(std::ostream&, const alumnos&);

};



Se reserva memoria con new y un valro de 10 datos (o sea puedo ingresar hasta 10 alumnos, no me preocupa por ahora hacerlo mas dinamico).

Codigo donde implemento para agregar datos


void alumnos::addinfo(int leg, std::string nom)
{
int i=0;
while(i<cant)
i++;
memcpy(&legajo[i],&leg,sizeof(int));
memcpy(nombre[i],&nom,sizeof(char)*nom.length());
cant++;
}



La llamada para llenar los datos es asi:
int main(void)
{
alumnos nombres;

nombres.addinfo(123,"pepito");
nombres.addinfo(234,"juan");

CONTINUA CODIGO...

El error que me tira esta en la funcion void alumnos::addinfo(int leg, std::string nom)

me dice lo siguiente:

error: C2664: 'memcpy' : no se puede convertir el par metro 1 de 'std::_String_iterator<_Elem,_Traits,_Alloc>' a 'void *'

o sea... aca: memcpy(nombre[i],&nom,sizeof(char)*nom.length());

Alguien sabe como soluciono esto?
yo lo haria directamente a un archivo
URLs de referencia