私は、関数の引数としてunique_pointer参照が渡されたという状況に直面しました。だから私はそれを見て、コードが実際にコンパイルして実行していることを知った。C++ 11/14ユニークなポインタではないユニークなポインタですか?
なぜ可能ですか? そのポインタの参照を持つことができるとき、ポインタはどのようにユニークですか?
ここに私の例:
class Foo{
public:
int bar{23};
};
void Bar(std::unique_ptr<Foo>& a_foo){
a_foo->bar = 42;
}
int main(int argc, char *argv[]){
auto foo{ std::make_unique<Foo>() };
Bar(foo);
std::cout << foo->bar << std::endl; //outputs 42
return 0;
}
"一意"は "一意の所有権"を意味します。 –
Do。あなたはgetメソッドを知っていますか? –