std::string *str = new sd::string()ってつかうことあるの?

2014年3月3日

お久しぶりです。最底辺です。
std::string *str = new std::string()って記載をStack Overflowあたりで見つけたのですが、
これってどんな意味があるのでしょうね?
普通 std::stringは、内部にポインタのバッファを持っていてそいつをコピーしているらしいので
newする必要は無さそうな気がしますね。
解放するタイミングも厄介ですしね。
ただ、std::stringは内部で文字列を勝手にコピーして作る場合があり、その把握が大変みたいです。
ええ、最低辺なので当然よくわかりません!!

const char* const NAME = "小平次";
std::string str(NAME);

この場合なんてどうなんでしょうね?最底辺の私としては、恐らくコピーされているような気がしています。
まあ、出来る人からするとstd::stringは、mutableとimmutableが混在していたりするので、
だめな作りらしいですね。
では。

c++

Posted by koheizi