elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa sencillo: ¿Qué significa este error?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa sencillo: ¿Qué significa este error?  (Leído 1,418 veces)
noob2012

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Programa sencillo: ¿Qué significa este error?
« en: 28 Mayo 2013, 16:50 »

Hola a todos, estoy haciendo mi primer programa utilizando una clase en un archivo .h, las definiciones de las funciones miembro en un archivo .cpp, y un archivo de main.

En el archivo de main me sale este error:

Line 10 error:request for member ' aumentarCuenta' in 'miLibro', which is of non-class type 'Libro () ()'
Line 11 error:request for member ' mostrarCuenta' in 'miLibro', which is of non-class type 'Libro () ()'



Código:
//Archivo Libro.h


#ifndef LIBRO_H_INCLUDED
#define LIBRO_H_INCLUDED

#include <string>
using std::string;

class Libro
{
    public:
        Libro();
        void aumentarCuenta();
        void mostrarCuenta();

};

#endif // LIBRO_H_INCLUDED


Código:
//Archivo Libro.cpp


#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include "Libro.h"

Libro::Libro()
{
    Cuenta=0;
}

void Libro::aumentarCuenta()
{
    ++Cuenta;
}

void Libro::mostrarCuenta()
{
    cout<<"El valor aumentado de cuenta es "<< Cuenta<<endl;
}

Código:
//Archivo main.cpp

#include <iostream>
#include "Libro.h"

int main()
{
    Libro miLibro();

    miLibro.aumentarCuenta();
    miLibro.mostrarCuenta();
}





En línea

elkiy

Desconectado Desconectado

Mensajes: 129


Porque yo soy yo.. y usted es usted.


Ver Perfil WWW
Re: Programa sencillo: ¿Qué significa este error?
« Respuesta #1 en: 28 Mayo 2013, 18:56 »

Hola esta mal tu codigo en los archivos, si bien Libro(); aparenta ser un constructor tenes que ponerle void en el .h.

Código
  1. #ifndef LIBRO_H_INCLUDED
  2. #define LIBRO_H_INCLUDED
  3.  
  4. #include <string>
  5. using std::string;
  6.  
  7. class Libro
  8. {
  9.    public:
  10.        void Libro(); // aqui edite.
  11.        void aumentarCuenta();
  12.        void mostrarCuenta();
  13.  
  14. };
  15.  
  16. #endif // LIBRO_H_INCLUDED

Luego  en el .cpp ponerle el void y Libro::

Código
  1. //Archivo Libro.cpp
  2.  
  3.  
  4. #include <iostream>
  5. using std::cout;
  6. using std::cin;
  7. using std::endl;
  8.  
  9. #include "Libro.h"
  10.  
  11. void Libro::Libro() // aqui edite
  12. {
  13.    Cuenta=0;
  14. }
  15.  
  16. void Libro::aumentarCuenta()
  17. {
  18.    ++Cuenta;
  19. }
  20.  
  21. void Libro::mostrarCuenta()
  22. {
  23.    cout<<"El valor aumentado de cuenta es "<< Cuenta<<endl;
  24. }

ESPERO QUE TE SIRVA.


En línea

noob2012

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: Programa sencillo: ¿Qué significa este error?
« Respuesta #2 en: 28 Mayo 2013, 19:07 »

Ok! muchas gracias me sirvio tu ayuda!!
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Programa sencillo: ¿Qué significa este error?
« Respuesta #3 en: 28 Mayo 2013, 21:27 »

Hola esta mal tu codigo en los archivos, si bien Libro(); aparenta ser un constructor tenes que ponerle void en el .h.
No xD.

Estas convirtiendo un constructor en una función cualquiera. Lo que tenía puesto era correcto, lo que falla es al invocar al constructor:

Código
  1. Libro miLibro();

Si no tienes argumentos no se debe poner paréntesis :

Código
  1. Libro miLibro;
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
elkiy

Desconectado Desconectado

Mensajes: 129


Porque yo soy yo.. y usted es usted.


Ver Perfil WWW
Re: Programa sencillo: ¿Qué significa este error?
« Respuesta #4 en: 28 Mayo 2013, 21:41 »

No xD.

Estas convirtiendo un constructor en una función cualquiera. Lo que tenía puesto era correcto, lo que falla es al invocar al constructor:

Código
  1. Libro miLibro();

Si no tienes argumentos no se debe poner paréntesis :

Código
  1. Libro miLibro;

si me di cuenta despues, hacia mucho no trabajaba con constructores. :P
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Que significa este error?
Bases de Datos
Cergath 1 2,295 Último mensaje 22 Noviembre 2009, 23:06
por Castg!
Que significa este error? (instalando drivers)
GNU/Linux
‭lipman 1 1,237 Último mensaje 28 Octubre 2010, 16:25
por EvilGoblin
¿Qué significa este error?
Scripting
Cergath 6 2,159 Último mensaje 17 Abril 2015, 08:24
por Cergath
MOVIDO: ¿Qué significa este error?
Scripting
Eleкtro 0 680 Último mensaje 16 Abril 2015, 20:17
por Eleкtro
Ayuda, que significa este error de my sql?
Bases de Datos
noaptebuna 1 1,322 Último mensaje 18 Junio 2015, 15:52
por engel lex
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines