Re: [Dev-C++] Getting the wrong output
- From: jalkadir gosonic ca
- To: gtk-list gnome org, dev-cpp-users lists sourceforge net
- Cc:
- Subject: Re: [Dev-C++] Getting the wrong output
- Date: Thu, 30 Jun 2005 15:09:44 -0000 (UTC)
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 gosonic ca 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 lists sourceforge net
> TO UNSUBSCRIBE: http://www23.brinkster.com/noicys/devcpp/ub.htm
> https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]