#include <memory> #include <iostream> int main(void){ { std::shared_ptr<int> a; { std::shared_ptr<int> b(new int); //確保したメモリをshared_ptrで管理 a = b; //bが参照するメモリをaと共有 std::cin >> *a; //基本的にはポインタと同じように参照できる std::cout << *b; }//インスタンスbが破棄される }//インスタンスaが破棄される。この時点で、それらが管理するメモリも自動的に破棄される。 return 0; }