5
これは非常に基本的な、おそらく恥ずかしい質問ですが、これを理解するのに問題があります。私がstd ::スタック上のものから別のオブジェクトに移動すると、元のオブジェクトが範囲外になったときに他のオブジェクトが使用されますか?std :: stackオブジェクト上で移動
#include <iostream>
#include <string>
int
main(int argc, char* argv[])
{
std::string outer_scope;
{
std::string inner_scope = "candy";
outer_scope = std::move(inner_scope);
}
std::cout << outer_scope << std::endl;
return 0;
}
outer_scopeはまだ印刷しようとしている場所で有効ですか?
はい、もちろんです。移動コンストラクタ/割り当ての全体のポイントは、一時的なコンテンツを盗むことです。一時的に問題が解消された後に、このように構築されたオブジェクトを使用できなければ、かなり役に立たないでしょう。 –
あなたが何かを動かすと、それはあなたが動かしたものが現在制御されていることを意味し、制御していたものはもはやそれをしません。 – NathanOliver
もちろんそれは – MikeMB