Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fhrida2006 en 30 Marzo 2011, 10:03 am



Título: problema al crear una clase en visual studio
Publicado por: fhrida2006 en 30 Marzo 2011, 10:03 am
este es el archivo .h


class Trabajador {
private:   
//public:
       char   nombre[20];         // Atributo
        char   apellido[20];       // Atributo
        char   puesto[20];         // Atributo
        int    horastrabajadas; //Atributo
        double costohora;     // Atributo
        double costohoraextra;// Atributo   
      double sueldo;          // Atributo
   
public:      
      //Constructores
   
      Trabajador( );
      Trabajador(char nombre1[20], char apellido1[20], char puesto1[20], double costohora1, double costohoraextra1);
       Trabajador(const Trabajador & unaInstancia);
      
      //Destructor
      ~Trabajador( );
      
      
      char   obtenernombre         ( ) const; // Servicio
        char   obtenerapellido       ( ) const; // Servicio
        char   obtenerpuesto         ( ) const; // Servicio
        int    obtenerhorastrabajadas( ) const; // Servicio
        double obtenercostohora      ( ) const; // Servicio
        double obtenercostohoraextra ( ) const; // Servicio
        double obtenersueldo         ( ) const; // Servicio
       
        void   asignarnombre         (char nombre); // Servicio
        void   asignarapellido       (char apellido); // Servicio
        void   asignarpuesto         (char puesto); // Servicio
        void   asignarhorastrabajadas(int horastrabajadas); // Servicio
        void   asignarcostohora      (double costohora); // Servicio
        void   asignarcostohoraextra (double costohoraextra); // Servicio
        double calcularsueldo        ()                      const; // Servicio
 
};




estos son mis constructores


#include "Trabajador.h"
#include "string.h"

//***************CONSTRUCTORES**********************
Trabajador::Trabajador( )
{
    strcpy(nombre,"ninguno");
    strcpy(apellido,"ninguno");
    strcpy(puesto,"ninguno");
    horastrabajadas = 0;
    costohora = 0.0;     
    costohoraextra = 0.0;   
   sueldo = 0.0; 
}
 
Trabajador::Trabajador (char nombre1[20], char apellido1[20], char puesto1[20], double costohora1, double costohoraextra1)
{
   strcpy(nombre,nombre1);
   strcpy(apellido,apellido1);
   strcpy(puesto,puesto1);
   horastrabajadas=0;
   costohora=costohora1;
   costohoraextra= costohoraextra1;
   sueldo=0.0;
 
}

Trabajador::Trabajador(const Trabajador & unaInstancia)
{
    this->nombre;//=unaInstancia.nombre;
    this->apellido;//=unaInstancia.apellido;
    this->puesto;//=unaInstancia.puesto;
    this->horastrabajadas=unaInstancia.horastrabajadas;
    this->costohora=unaInstancia.costohora;     
    this->costohoraextra=unaInstancia.costohoraextra;   
   this->sueldo=unaInstancia.sueldo;
}

//****************DESTRUCTOR**************************

Trabajador::~Trabajador( ) {
 // Nada que liberar
}

//****************SERVICIOS***************************

char Trabajador::obtenernombre( ) const

   return (nombre);
}/*

char Trabajador::obtenerapellido( ) const
{
   return (this->apellido);
}

char Trabajador::obtenerpuesto( ) const

   return (this->puesto);
}
*/
int Trabajador::obtenerhorastrabajadas( ) const
{
   return (this->horastrabajadas);
}

double Trabajador::obtenercostohora( ) const

   return (this->costohora);
}

double Trabajador::obtenercostohoraextra( ) const
{
   return (this->costohoraextra);
}

double Trabajador::obtenersueldo( ) const

   return (this->sueldo);
}

//*****************servicios de asignación*******************

void Trabajador::asignarnombre(char nombre ) 

   this->nombre;//=nombre;
}

void Trabajador::asignarapellido(char apellido)
{
   this->apellido;//=apellido;
}

void Trabajador::asignarpuesto(char puesto)

   this->puesto;//=puesto;
}

void Trabajador::asignarhorastrabajadas(int horastrabajadas)
{
   this->horastrabajadas=horastrabajadas;
}

void Trabajador::asignarcostohora(double costohora)

   this->costohora=costohora;
}

void Trabajador::asignarcostohoraextra(double costohoraextra)
{
   this->costohoraextra=costohoraextra;
}

double Trabajador::calcularsueldo( ) const

   return (this->horastrabajadas * this->costohoraextra);
}


el detalle es que no se como leer la cadena de caracteres de mis trabajadores creados


Título: Re: problema al crear una clase en visual studio
Publicado por: El_Java en 30 Marzo 2011, 18:50 pm
Para asignar string lo mejor es usar la libreria estandar string.h, http://es.wikipedia.org/wiki/String.h (http://es.wikipedia.org/wiki/String.h), usando strcpy(destino, origen) es muy facil.
Código
  1. strcpy(this->loquesea, unaInstancia.loquesea);


Saludos