我有几个关于智能指针的问题,之前我没有给他们任何信任。
- 在智能指针的世界中,拥有一个对象、指向一个对象和管理一个对象意味着什么?之前我认为拥有该对象的人也指向它并管理该对象。现在,我知道智能指针可以拥有一个对象,但指向另一个对象(别名构造函数)。在这里,我找到了一个很好的解释,解释了拥有一个对象的含义-> http://www.umich.edu/~eecs381/handouts/C++11_smart_ptrs.pdf,但我仍然无法区分这三个术语。
- 如果指针拥有一个对象,但指向另一个对象,他管理的是哪个对象?他拥有它的那个,还是他指向的那个,或两者兼而有之?拥有一个对象但不指向它有什么意义?
- 两个智能指针何时相等?两个指针可以同时拥有同一个对象并不同吗?我对他们的价值平等不感兴趣,但对所有权感兴趣。
- 为什么所有权顺序很重要(除了将指针用作容器中的键)?我想这仅与 shared_ptr 相关。
一切都是从试图理解 owner_before 开始的,现在我比开始探索这个话题之前更加困惑了.. :(