MFC: std :: string vs CString?

Использование C ++ с MFC. Исходя из опыта работы с C #, я обычно использую строку для всех, ну, строк. Я использую их для членов класса, параметров метода и возвращаемых значений метода.

Теперь в C ++ у меня есть std :: string, CString, char *, LPCTSTR и другие. При разработке элементов данных, параметров метода и возвращаемых значений методов, какой тип (ы) я должен использовать? Простота использования важна, и CString, кажется, предлагает это, но я инстинктивно склоняюсь к переносимым стандартам, хотя переносимость довольно низка в моем списке приоритетов (сейчас). Кроме того, мне не нравится семантика c создания строковых буферов и передачи их в методы и функции.

Я думаю, что с точки зрения непосредственной простоты кодирования CStrings, вероятно, имеют преимущество. Но в целом, каков способ «высокого качества кода» для этого?

РЕДАКТИРОВАТЬ:

Меня особенно беспокоят точки интерфейса в моем коде (то есть параметры метода и возвращаемые значения). Например:

Shape::SetCaption(const char *caption) {...}

Shape::SetCaption(CString caption) {...}

Shape::SetCaption(std::string caption) {...}

Shape::SetCaption(std::wstring caption) {...}
21
задан User 24 May 2011 в 22:10
поделиться