Unresolved external symbol (singleton class C++) -
this question has answer here:
i looked answers in stackoverflow type of problem, none of helping me out. this question describes how resolve error, , should provide definition , not declaration. i've done that, i'm still getting following error:
error 13 error lnk2019: unresolved external symbol "private: __thiscall networkmanager::networkmanager(void)" (??0networkmanager@@aae@xz) referenced in function "public: static class networkmanager * __cdecl networkmanager::instance(void)" (?instance@networkmanager@@sapav1@xz) c:\users\hidden\documents\agk projects\c++ libraries\apps\template_windows_vs2013\networkmanager.obj template
here's code:
networkmanager.h
#ifndef _h_networkmanager_ #define _h_networkmanager_ #include<iostream> #include<vector> class networkmanager { private: networkmanager(); static networkmanager * netmanager; public: int networkid; static networkmanager * instance(); int hostnetwork(std::string netname, std::string hostname, int port); int joinnetwork(std::string netname, std::string clientname); bool isnetworkactive(int netid); }; #endif
networkmanager.cpp
#include<iostream> #include "networkmanager.h" #include "template.h" networkmanager * networkmanager::netmanager = null; networkmanager * networkmanager::instance() { if (!netmanager) netmanager = new networkmanager; return netmanager; } int networkmanager::hostnetwork(std::string netname, std::string hostname, int port) { int networdid__; const char * netname__ = netname.c_str(); const char * hostname__ = hostname.c_str(); networdid__ = agk::hostnetwork(netname__, hostname__, port); return networdid__; } int networkmanager::joinnetwork(std::string netname, std::string clientname) { int networdid__; const char * netname__ = netname.c_str(); const char * clientname__ = clientname.c_str(); networdid__ = agk::joinnetwork(netname__, clientname__); return networdid__; } bool networkmanager::isnetworkactive(int netid) { switch (agk::isnetworkactive(netid)) { case 0: return false; break; case 1: return true; break; } }
you declared networkmanager::networkmanager()
in header file there no implementation of in source file.
Comments
Post a Comment