C ++ da ob'ektiv-n NSString * ning eng yaxshi ekvivalenti nima?

Men C ++ dasturiga ob'ektiv qo'llanmani yuklayman va har ikkala tilda ham yangi. Sinovda men hozirda ishlayapman. NSString yoki NSString * qatoriga ishora qiluvchi juda ko'p sohalar mavjud. Ushbu maydonlar C ++ da eng munosib nimani anglatadi: std :: string , std :: string * or const char * ?

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 * ekvivalentini tanlash men uchun eng yaxshi variantmi?

Sizning javoblaringiz uchun ko'p rahmat.

0

2 javoblar

NSString o'zgaruvchan mag'lubiyatdir, shuning uchun const std :: string - bu to'g'ri tanlovdir. Agar siz uni hamma joyda mos yozuvlar sifatida ishlatsangiz, sizda nusxa bo'lmaydi.

2
qo'shib qo'ydi
Bu NSStringning o'zgaruvchanligi haqida yaxshi fikr.
qo'shib qo'ydi muallif Michael Price, manba

Umumiy javob std :: string dan foydalanish kerak. Ammo sizning holatlaringizga qarab const char * ni tanlashingiz mumkin. Agar siz eski kodni to'g'ri ishlatsangiz, siz nusxa olish uchun juda ko'p miqdorda jarimaga duch kelmaysiz, biroq siz xotiraning barcha turini olishingiz mumkin.

0
qo'shib qo'ydi