Я портирую приложение target-c на C ++, и я довольно новичок в любом из этих языков. В классе, которым я сейчас занимаюсь, есть довольно много полей, которые являются строковыми литералами NSString
или указателями на строку NSString *
. Что является лучшим эквивалентом этих полей в C ++: std::string
, std::string *
или const char *
?
Изначально я думал, что std::string
больше похож на c ++, а const char *
больше похож на C, поэтому я должен использовать первое. Мой коллега говорит, что последний предпочтительнее, потому что он быстрее и легче, и нет необходимости в копировании. Однако, если я должен передать std::string
в качестве ссылки в конструкторе как const std::string & param
, он будет скопирован только один раз.
Какой лучший вариант для меня я выбрал бы для эквивалента NSString *
?
Большое спасибо за ваши ответы.