This program does compile, but the linker says:
main.o(.text+0x1a4):main.cpp: undefined reference to
`jme::operator<<(std::ostream&, jme::Name const&)'

here is the program's snips.

--------- strtools.hpp
namespace{
calss strtools{
   std::string str;
   ........

};
}

--------- name.hpp
namespace{
class Name : public jme::strtools{
    ....
    // This only gives you an idea as to what the f'tions do
    const std::string& getNameStr() const{return str;}
    void setName( const std::string& x){str = x;}
    void setName( const char* x){str = x;}

   friend std::ostream& operator<<( std::ostream& os,
                                     const jme::Name& obj );
   friend std::istream& operator>>( std::istream& is,
                                     jme::Name& obj );

};
}

--------- name.cpp
std::ostream& operator<<( std::ostream& os, const jme::Name& obj ) {
return os << obj.getNameStr(); }
std::istream& operator>>( std::istream& is, jme::Name& obj ) {
   return is >> obj.str;

}

--------- main.cpp
   jme::Name name("ni\xa4" "a");

   std::cout << "\"" << name << "\"" << std::endl;

   std::cout << "End of name..." << std::endl;
   std::cin.get();
   return 0;

}

========================================

what am I doing wrong?
Does it hava anything to do with my namespace?

TIA

_______________________________________________
Help-gplusplus mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to