Yes, I just notice that, so this are the changes I have made: --- Money.hpp friend std::ostream& std::operator<<( std::ostream&, const jme::Money& ); friend std::istream& std::operator>>( std::istream&, jme::Money& ); --- Money.cpp std::operator<<( std::ostream& os, const jme::Money& obj ) { os << obj.getAmount(); return os; } std::istream& std::operator>>( std::istream& is, jme::Money& obj ) { is >> obj.amount; return is; } -------------- But this is giving me linker errors sayng: ========= ERROR =========== In file included from money.cpp:2: money.hpp:67: error: `std::ostream& std::operator<<(std::ostream&, const jme::Money&)' should have been declared inside `std' money.hpp:68: error: `std::istream& std::operator>>(std::istream&, jme::Money&)' should have been declared inside `std' What am I doing wrong!!? Again thanks for you help. > What namespaces are you using. > > You have declared the friend operator as: > std::ostream& operator<<(...) > and implemented it as: > std::ostream& jme::operator<<(...) > > Without a maching output operator, the compiler will emit the pointer to > the object instead. > > /Per W > > On Thu, 30 Jun 2005 jalkadir@xxxxxxxxxx wrote: > >> In my class, when I use the "getter" to display the value I get the >> right >> output, but when I try using the overloaded extractor operator (<<) I >> get >> some hex value displayed. Here is some of the code: >> --- snip >> Main.cpp >> int main() { >> Money money("12.21"); >> >> std::cout << "Value is: " << money.getAmount() << std::endl; // 12.21 >> std::cout << "Value is: " << money << std::endl; // hex value???? >> return 0; >> } >> >> >> >> The class goes like this: >> ---snip >> Money.hpp >> class Money { >> protected: >> float amount; //!< This variable holds the numerical value >> public: >> //! Constor >> Money(const std::string&); >> >> //!Copy constructor >> Money( const Money& ); >> >> //!Destructor >> ~Money() { std::cout << amount << std::endl;} //<<=== 12.21 >> >> // Setters >> ... >> // Getters >> const float getAmount() const; >> >> // Overloaded operators >> ..... >> friend std::ostream& operator<<( std::ostream&, const jme::Money& ); >> friend std::istream& operator>>( std::istream&, jme::Money& ); >> .... >> } ; //Money >> >> >> >> and the code looks like this >> --- snip >> jme::Money::Money( const std::string& x){ >> this->setAmount(x); // this metho converts the std::string to a >> float >> } >> const float jme::Money::getAmount() const { >> return this->amount; >> } >> std::ostream& >> jme::operator<<( std::ostream& os, const jme::Money& obj ) { >> os << obj.getAmount(); //<<==== 0x4b1120 >> return os; >> } >> ----- end of snip >> As you can see when using the member method getAmount() the value >> displayed is in the right format, however the extractor operator is not >> doing > > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > _______________________________________________ > Dev-cpp-users mailing list > Dev-cpp-users@xxxxxxxxxxxxxxxxxxxxx > TO UNSUBSCRIBE: http://www23.brinkster.com/noicys/devcpp/ub.htm > https://lists.sourceforge.net/lists/listinfo/dev-cpp-users > _______________________________________________ gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list