TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: dragondgold en 15 de Febrero de 2012, 23:27:33

Título: Nuevo en C++, no funciona un programa básico con clases
Publicado por: dragondgold en 15 de Febrero de 2012, 23:27:33
Hola estoy en el camino del aprendizaje con C++. Estoy haciendo un programa simple con clases, como para empezar a practicar por ahora me ha resultado fácil pero no logro compilar el programa  :(.

El main.cpp es:

Código: [Seleccionar]
#include <iostream>

using namespace std;

#include "Abecedarios.h"

void menu ()
{

    cout << "Ingrese una opcion: " << endl
         << "1 - Insertar letra" << endl
         << "2 - Eliminar letra" << endl
         << "3 - Mostrar" << endl
         << "4 - Terminar" << endl << endl;

}

int main()
{
int opcion;

    Abecedarios a;
    cout << "Este programa acomoda las letras que el usuario va introduciendo" << endl;
    menu();
    cin >> opcion;

    while(opcion != 4)
    {

        int opcion;
        cin >> opcion;

        switch(opcion)
        {

            case 1:
                char c;
                cout << "Inserte la letra a agregar" << endl;
                cin >> c;
                a.InsertarLetra(c);
                break;

            case 2:

            case 3:
                a.Mostrar();
                break;

        }

    }
}

El Abecedarios.h que es el header de la clase es:

Código: [Seleccionar]
#ifndef ABECEDARIOS_H
#define ABECEDARIOS_H

class Abecedarios
{
    public:
        Abecedarios();
        void InsertarLetra(char);
        void Mostrar();
    private:
        char Buffer[30];
};

#endif // ABECEDARIOS_H

Y el Abecedarios.cpp de la clase:

Código: [Seleccionar]
#include <iostream>
#include "Abecedarios.h"

Abecedarios::Abecedarios()
{
    for(int n = 0;n < 30; ++n)
    {
        Buffer[n] = 0;
    }
}

void Abecedarios::Mostrar()
{
    cout << "El buffer contiene: " << Buffer << endl;
}

void Abecedarios::InsertarLetra(char c)
{
int n,count;

    for(n = 0;c < Buffer[n] && n < 30;++n);
    for(count = 28; count >= n;--count)
    {
        Buffer[count+1] = Buffer[count];
    }
    Buffer[n] = c;

}

El compilador me tira el error en Abecedario.cpp diciendo que cout y endl no estan definidos sin embargo ya coloque el #include <iostream> como puede ser ? En el libro también coloca las librerias así y no entiendo por qué no funciona, debería.

Si me pudieran ayudar se los agradecería :)

Muchas gracias y saludos !! :)
Título: Re: Nuevo en C++, no funciona un programa básico con clases
Publicado por: fabianjsm en 16 de Febrero de 2012, 01:20:20
Te falta el espacio std: using namespace std;
Título: Re: Nuevo en C++, no funciona un programa básico con clases
Publicado por: dragondgold en 16 de Febrero de 2012, 01:22:40
Haaaaaaaa muchas gracias !!!!! Era justamente eso te lo agradezco :) A proposito cual es la función de eso ?
Título: Re: Nuevo en C++, no funciona un programa básico con clases
Publicado por: fabianjsm en 16 de Febrero de 2012, 03:52:51
'using namespace' Hace publico los miembros de un espacio de nombres.
Si tienes varias funciones con el mismo nombre, puedes separarlas en espacios.
Te adjunto un ejemplo. Debes renombrarlo a .cpp, no me permitió subir con esa extensión.
Título: Re: Nuevo en C++, no funciona un programa básico con clases
Publicado por: dragondgold en 16 de Febrero de 2012, 14:21:49
Mas claro imposible Fabian muchisimas gracias :)