I bet all of them derive either from the days before std::string, which only started to be commonly supported after 2000, as compilers were catching up with C++98.
The typical rite of passage that every C++ developer needs to write their own string and vector classes as part of learning C before C++, instead of properly C++ as we can do nowadays.
Finally those shops that don't allow to use proper C++ on their code, rather C with Classes.