2017-08-18 3 views
-5

を指しています。本当に簡単な質問:オブジェクトunique_ptrへのアクセスが

私はC++でスマートポインタを少し新しくしています。私は所有権を持っていると思うが、実際に何を指しているのかを知る方法はない。オブジェクトのメンバ関数/変数を使用しようとすると、私が欲しいものではないunique_ptrクラスの関数が得られます。

+0

[演算子*](http://en.cppreference.com/w/cpp/memory/unique_ptr/operator*) – user463035818

+6

は場合と同じ操作を行いそれはポインタだった。 – molbdnilo

答えて

3

これを行う方法は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; 
} 
関連する問題