Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema Clases (basico)

Estas en el tema de Problema Clases (basico) en el foro de C/C++ en Foros del Web. Hola a todos, estoy empezando con esto de las clases en c++ y me salta un error que dice: Código: undefined reference to `MiClase::MiClase(std::basic_string<char, std::char_traits<char>, ...
  #1 (permalink)  
Antiguo 26/11/2010, 06:03
 
Fecha de Ingreso: octubre-2008
Mensajes: 118
Antigüedad: 15 años, 6 meses
Puntos: 2
Problema Clases (basico)

Hola a todos, estoy empezando con esto de las clases en c++ y me salta un error que dice:
Código:
undefined reference to `MiClase::MiClase(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
y nose porque me salta.

Tengo estos 3 archivos.

main.cpp
Código:
int main()
{
    string algo="hola";
    MiClase miClase(algo);
    cout << miClase.mostrarTexto() << endl;
    miClase.asignarTexto("adios");
    cout << miClase.mostrarTexto() << endl;
    return 0;
}
MiClase.h

Código:
#ifndef MICLASE_H_INCLUDED
#define MICLASE_H_INCLUDED
#include <string>

using namespace std;

class MiClase
{
    private:
        string texto;
    public:
        MiClase(string algo);
        void asignarTexto(string txt);
        string mostrarTexto() const;

};


#endif // MICLASE_H_INCLUDED
MiClase.cpp
Código:
#include "MiClase.h"

MiClase::MiClase(string algo):
texto(algo)
{
    cout << texto << endl;
}

void MiClase::asignarTexto(string txt)
{
    texto=txt;
}
string MiClase::mostrarTexto() const
{
    cout << texto << endl;
    return texto;
}
Que estoy haciendo mal??
  #2 (permalink)  
Antiguo 26/11/2010, 11:45
 
Fecha de Ingreso: octubre-2008
Mensajes: 118
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Problema Clases (basico)

Lo he copiado todo en el main.cpp y funciona perfecto :S no lo entiendo
y si lo compilo por linea de comandos tmb me funciona pero desde el IDE no :S utilizo el Code::Blocks 10.05. Alguien sabe a que se debe?

Código:
#include <iostream>
#include <string>
#include <string>

using namespace std;

class MiClase
{
    private:
        string texto;
    public:
        MiClase(string algo);
        void asignarTexto(string txt);
        string mostrarTexto() const;

};


MiClase::MiClase(string algo):
texto(algo)
{
    cout << texto << endl;
}

void MiClase::asignarTexto(string txt)
{
    texto=txt;
}
string MiClase::mostrarTexto() const
{
    cout << texto << endl;
    return texto;
}

int main()
{
    string algo="hola";
    MiClase miClase(algo);
    cout << miClase.mostrarTexto() << endl;
    miClase.asignarTexto("adios");
    cout << miClase.mostrarTexto() << endl;
    return 0;
}
  #3 (permalink)  
Antiguo 26/11/2010, 16:46
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema Clases (basico)

Debes tener mal enlazado los archivos....fijate si estan incluidos todos en el proyecto.
  #4 (permalink)  
Antiguo 27/11/2010, 05:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 118
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Problema Clases (basico)

Ya he logrado solucionarlo, cuando cree los archivos no les asigne un debug ni el release por eso no me funcionaba. Tuve que volver a crear los archivos asignandoles esto porque si se los asignaba una vez creado me daba un error :S

Gracias por la ayuda,
Dani.

Etiquetas: basico, clases
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:26.