From: Mark S. <br...@rc...> - 2003-04-15 01:52:54
|
The answer is probably staring me in the face but I can's see what I'm doing wrong. Summary: I'm trying out some ideas in a quickie test file for a class design. I'm overloading the << and >> operators so I can print out my new class. Even tho I'm verbatium copying the declarations of the ostream and istream operators, I'm getting an error. What the heck am I doing wrong? The errors: fix_test.cpp|7| ISO C++ forbids declaration of `istream' with no type fix_test.cpp|7| `istream' is neither function nor member function; cannot be || declared friend fix_test.cpp|7| parse error before `&' token fix_test.cpp|8| ISO C++ forbids declaration of `ostream' with no type fix_test.cpp|8| `ostream' is neither function nor member function; cannot be || declared friend fix_test.cpp|8| parse error before `&' token || fix_test.cpp: In constructor `FixedInt::FixedInt(double)': Numbers in |#| format indicate line numbers in my file. The offending file is here: #include <iostream> #include <cmath> #include <iomanip> class FixedInt { friend ostream &operator<<(ostream&, const FixedInt&); // 7 friend istream &operator>>(istream&, FixedInt&); // 8 friend const FixedInt operator*(const FixedInt& lhs, const FixedInt& rhs); friend const FixedInt operator/(const FixedInt& lhs, const FixedInt& rhs); friend const FixedInt operator+(const FixedInt& lhs, const FixedInt& rhs); friend const FixedInt operator-(const FixedInt& lhs, const FixedInt& rhs); public: FixedInt(); FixedInt(const double); //~FixInt(); protected: FixedInt(const int); private: int data; }; And just to be totally complete, here's my makefile: fix_test: fix_test.cpp g++ -o fix_test fix_test.cpp I just don't get what I'm doing wrong here.... heeeeelllllppppp!!! Thanks... :/ |