ik heb een klasse hostname geschreven met daarin een string, en een poging tot overloaden van <<,
ik heb me gebaseerd op dit voorbeeldje : http://msdn.microsoft.com..._for_your_own_classes.asp
ziehier hostname.h
als ik dit compileer, krijg ik geen problemen, als ik het echter link met de main :
dan krijg ik volgende errors :
ik vermoed dat hij hier wil zeggen dat hij twee definities van de << gevonden heeft, en er niet goed mee kan werken,
is er nu iets mis met mn overloading, of moet ik het eldes zoeken ?
ik heb me gebaseerd op dit voorbeeldje : http://msdn.microsoft.com..._for_your_own_classes.asp
ziehier hostname.h
code:
1
2
3
4
5
6
7
8
9
10
11
12
| class hostname{
private:
std::string host;
public:
hostname(std::string h);
friend std::ostream& operator<< ( std::ostream& os, hostname& hostn );
};
std::ostream& operator<< ( std::ostream& os, hostname& hostn){
os << hostn.host;
return os;
} |
als ik dit compileer, krijg ik geen problemen, als ik het echter link met de main :
code:
1
2
3
4
5
6
7
8
9
| #include "hostname.h"
#include <string>
int main(){
std::string s1("test");
hostname n1(s1);
std::cout << n1 << std::endl;
return 0;
} |
dan krijg ik volgende errors :
code:
1
2
3
| oef2 error LNK2005: "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class hostname &)" (??6@$$FYAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@AAVhostname@@@Z) already defined in hostname.obj oef2 error LNK2005: "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class hostname &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@AAVhostname@@@Z) already defined in hostname.obj oef2 fatal error LNK1169: one or more multiply defined symbols found |
ik vermoed dat hij hier wil zeggen dat hij twee definities van de << gevonden heeft, en er niet goed mee kan werken,
is er nu iets mis met mn overloading, of moet ik het eldes zoeken ?