PDA

Visualizza la versione completa : [C++] Problema con classe esterna + std::string


GhostFire
04-04-2012, 15:45
Ciao a tutti,

Ho creato questa classe in un file chiamato globalfunctions.h.



#include <string>
#include <sstream>

class g_f
{
public:
std::string ConvertIntToString(int input);

std::string ConvertIntToString(int input)
{
std::string test;

return (test);
}
};


Nella classe main.cpp ovviamente ho inserito questo:



#include "globalfunctions.h";


Quando compilo mi da quest'errore:



std::string g_f::ConvertIntToString(int)' and `std::string g_f::ConvertIntToString(int)' cannot be overloaded


Non capisco proprio il motivo di questo errore...

oregon
04-04-2012, 15:50
Perché due volte lo stesso metodo?

Elimina semplicemente questa

std::string ConvertIntToString(int input);

GhostFire
04-04-2012, 15:55
Originariamente inviato da oregon
Perché due volte lo stesso metodo?

Elimina semplicemente questa

std::string ConvertIntToString(int input);

Ho letto che le funzioni dovevano essere dichiarate...
comunque sia se elimino quella linea mi esce quest'altro errore:



cannot call member function `std::string g_f::ConvertIntToString(int)' without object


e me lo da sul richiamo della funzione...



g_f::ConvertIntToString(10);

GhostFire
04-04-2012, 15:58
Pardon, errore mio.

Grazie tanto che mi da errore, il valore non viene assegnato da nessuna parte.

EDIT 2: come non detto...ho assegnato una variabile per l'assegnazione del valore che ritorna ma niente...

oregon
04-04-2012, 16:00
Originariamente inviato da GhostFire
Ho letto che le funzioni dovevano essere dichiarate...

Stiamo parlando di metodi di una classe C++ non di C ...


comunque sia se elimino quella linea mi esce quest'altro errore:

... che non c'entra con quello precedente.

Per usare un metodo (non statico) di una classe devi istanziare la classe e creare un oggetto con cui lavorare ...

Parliamo delle basi del C++ ...

GhostFire
04-04-2012, 16:04
Originariamente inviato da oregon
Stiamo parlando di metodi di una classe C++ non di C ...



... che non c'entra con quello precedente.

Per usare un metodo (non statico) di una classe devi istanziare la classe e creare un oggetto con cui lavorare ...

Parliamo delle basi del C++ ...

Grazie...ho risolto istanziando la classe...

comunque, le basi del c++ non le conosco e le sto imparando adesso...

oregon
04-04-2012, 16:06
Originariamente inviato da GhostFire
comunque, le basi del c++ non le conosco e le sto imparando adesso...

Ecco ... non è una critica ma le basi di un linguaggio non si imparano sui forum, in genere si usano i libri, dove trovi tutto quello che ti serve...

Loading