опасность класса string

Я не буду здесь рассматривать интерфейс данного класса из STL. Я только предупрежу Вас об одной скрытой опасности, которая может возникнуть при его использовании.
Есть в данном классе конструктор, принимающий char* как аргумент и копирущий значение Си-строки в себя. Хороший он, но опасненький. Если Вы передадите ему 0(NULL иначе говоря), то Ваша програмка аккуртненько слелит. Казалось, в чем проблема? Наследуемся от данного класса, переопределяем конструктор, проверяем в нем указатель на равенство нулю и радуемся. Но тут вспоминаем, что конструкторы и операторы присваивания в С++ не наследуются и громко материмся – переписать столько кода не сильно хочется, проще вставить один оператор проверки при вызове конструктора.



Digital Ocean
Провайдер облачного хостинга - заведи свой виртуальный сервер всего за $5 в месяц !

Leave a Reply