J
jalkadir
This program does compile, but the linker says:
main.o(.text+0x1a4):main.cpp: undefined reference to
`jme:perator<<(std:stream&, 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:stream& operator<<( std:stream& os,
const jme::Name& obj );
friend std::istream& operator>>( std::istream& is,
jme::Name& obj );
};
}
--------- name.cpp
std:stream& operator<<( std:stream& 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
main.o(.text+0x1a4):main.cpp: undefined reference to
`jme:perator<<(std:stream&, 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:stream& operator<<( std:stream& os,
const jme::Name& obj );
friend std::istream& operator>>( std::istream& is,
jme::Name& obj );
};
}
--------- name.cpp
std:stream& operator<<( std:stream& 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