[C con Clase] consulta de ejercicio de codeblocks
Steven Davidson
srd4121 en njit.edu
Dom Oct 30 12:33:03 CET 2011
Hola Alfredo,
2011/10/30 Alfredo Ruiz Hernandez <arh1990 en hotmail.com>:
> Bueno antes que nada esto esta mal, ya que tu debes de estudiar y hacer tus
> propios codigos, pero te ayudare con esto, con la información que das esto
> entendi, el programa lo hice en dev c++ pero no debe de haber problema para
> que lo pases a codeblocks ya que de todas formas es c++, espero que te
> ayude:
Quisiera comentar algunos matices acerca del código fuente enviado.
> <--------------------------------------------------------------------------------------------------------------------------->
> #include <iostream>
> #include <string>
>
> using namespace std;
>
> class Clempleados{
> private:
> string nombre;
> string apellido;
> int horas;
> float salarioHora;
> public:
> Clempleados(string n, string a, int h, float s);
Aconsejo pasar objetos por referencia y que sean constantes, si no se
quiere modificar su contenido. Esto es,
Clempleados( const string &n, const string &a, int h, float s );
También aconsejo nombres más descriptivos, incluso para los parámetros.
>
[CORTE]
> int main(int argc, char **argv){
> string nombre;
> string apellido;
> int horas = 0;
> float salario = 0.0f;
>
> cout << "Ingresa el nombre del empleado: ";
> cin >> nombre;
> cout << "Ingresa el apellido del empleado: ";
> cin >> apellido;
> cout << "Ingresa las horas trabajadas incluyendo las horas extras: ";
> cin >> horas;
> cout << "Ingresa el salario por hora trabajada: ";
> cin >> salario;
> fflush(stdin);
Esto no es nada aconsejable porque no es una implementación estándar
de ANSI C/C++. Además, no estamos usando 'stdin', sino 'cin' que puede
o no estar vinculado a 'cin'.
>
> Clempleados *empleado = new Clempleados(nombre, apellido, horas, salario);
>
No es necesario instanciar un objeto dinámicamente. Podemos crear uno
como una variable "normal y corriente"; esto es,
Clempleados empleado( nombre, apellido, horas, salario );
> cout<<"\n\nLos datos del empleado son:" <<endl;
> cout<<"Nombre: " << empleado->get_Nombre().c_str()<<endl;
> cout<<"Apellido: " << empleado->get_Apellido()<<endl;
> cout<<"El salario total es: " << empleado->salarioTotal()<<endl;
>
Obviamente, si instancias el objeto "estáticamente", deberás usar el
operador . de acceso a miembro.
> cin.get();
> }
>
Al final, si vas a usar 'new' DEBES usar 'delete' para liberar esa
memoria dinámicamente adjudicada.
Adicionalmente, la función 'main()' debe retornar un entero, que por
convenio 0 (cero) indica una terminación exitosa del programa.
Espero haber aclarado algunas cosas.
Steven
Más información sobre la lista de distribución Cconclase