A simple C++ Trie for working with strings
A couple of thoughts. 


Maybe a distinction between Trie and TrieNode might make sense. So TrieNode can be defined as an inner struct within an outer class Trie.
There is no compelling reason to use a char* string representation rather than using string.
unordered_map would do just as well as a map, and possibly be faster.
You can consider iterating using a while loop instead of recursion in isContained.