I was wondering that lrucache should only declare function in header files and implement the declration in .cpp files such as lrucache.cpp