|
From: <jal...@go...> - 2005-06-30 12:30:28
|
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;} //<<=3D=3D=3D 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(); //<<=3D=3D=3D=3D 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 the job I thought it would.
Can anybody tell me what I am doing wrong?
TIA
|