Custom C++ string class