const char * strがあり、それを単純な文字列に変換したかったので、std :: string()コンストラクターを使用して、strの値を変数にコピーしました。
const char* str;
std::string newStr = std::string(str);
<some processing>...
<end>
したがって、関数が終了する前に、文字列newStrを削除する必要がありますか、std :: stringクラスのデストラクタが自動的に呼び出され、このnewStrが削除されます。std :: stringクラスのデストラクタが仮想ではないことをここで読んでいると、混乱します。ただし、ここでは、文字列がスコープ外になると削除されることを示しています。デストラクタが仮想でない場合は混乱するように思われるので、誰かがそれに光を当てることはできますか?文字列変数がスコープ外になった後に削除されるのはなぜですか?