-5
を指しています。本当に簡単な質問:オブジェクトunique_ptrへのアクセスが
私はC++でスマートポインタを少し新しくしています。私は所有権を持っていると思うが、実際に何を指しているのかを知る方法はない。オブジェクトのメンバ関数/変数を使用しようとすると、私が欲しいものではないunique_ptrクラスの関数が得られます。
を指しています。本当に簡単な質問:オブジェクトunique_ptrへのアクセスが
私はC++でスマートポインタを少し新しくしています。私は所有権を持っていると思うが、実際に何を指しているのかを知る方法はない。オブジェクトのメンバ関数/変数を使用しようとすると、私が欲しいものではないunique_ptrクラスの関数が得られます。
これを行う方法は3つあります:operator->
、operator*
、get()
です。ここ
は、実行中のコードの例である:ideone it
#include <iostream>
#include <memory>
struct Foo
{
Foo(std::string v) : value(v) {}
void Bar() { std::cout << "Hello, " << value << "!" << std::endl; }
std::string value;
};
int main() {
std::unique_ptr<Foo> FooPtr = std::make_unique<Foo>("World");
FooPtr->Bar();
FooPtr.get()->Bar();
(*FooPtr).Bar();
return 0;
}
[演算子*](http://en.cppreference.com/w/cpp/memory/unique_ptr/operator*) – user463035818
は場合と同じ操作を行いそれはポインタだった。 – molbdnilo