1
int a = 1;
int* w = &a;
std::unique_ptr<int> v(new int(a));
cout << "*w: " << *w << endl;// this works
cout << "*v: " << *v << endl;// this works
cout << "w: " << w << endl; // this works
cout << "v: " << v << endl; // this doesnt work
cout << "v: " << v.get() << endl; // this works
私はユニークなポインタの構成は普通のものと同じだと思っていました。 しかし、私は生の定義された名前でこのポインタのアドレスを取得しようとすると、 "この演算子に一致する演算子がない"というunique_pointerのエラーを示します。 v.get()メソッドのみで動作しますunique_ptrとノーマルポインタが一致しない
何が欠けていますか?
"ユニークポインタ"は、名前のポインタのみです。管理するオブジェクトにアクセスするためのポインタのような構文を使用できるように、いくつかのオーバーロードされた演算子があります。 – molbdnilo