質問: C ++のobjective-c NSString *と同等のものは何ですか? 私はobjective-cアプリケーションをC ++に移植しており、どちらの言語でもかなり新しいです。私が現在扱っているクラスでは、文字列リテラル `NSString` または文字列 `NSString *` へのポインタである非常に多くのフィールドがあります。 `std :: string` 、 `std :: string *` または `const char *` は、C ++のフィールドに最もよく似たものは何ですか? Initially, I thought that `std::string` is more c++-like and `const char *` is more C-like so i should use the former. My colleague says that the latter is preferred because it is faster and lighter and there is no copying involved. However, if I should pass `std::string` as a reference in constructor as `const std::string & param` it would be copied once only. `NSString *` と同等のものを選択する最良の選択肢は何ですか? あなたの応答に感謝します。
回答: 一般的な答えは、 `std :: string` を使用することです。しかし、状況によっては `const char *` を選択することもできます。前者を正しく使用すると、あまりにも多くのコピー罰を受けることはありませんが、あらゆる種類のメモリが保護されます。