控制块会控制其存储指针的生存期. 但是, 重点来了, 控制块中存储的指针未必是sharedptr存储的指针....内部控制块的模板参数和外部智能指针的模板参数毫无干系, 因此控制块指针和存储指针本质上是完全独立的.
----
那么,为什么C++需要用如此复杂的方式去实现呢?...,显然的确应该共享生存期,但有人可能会问了, 为什么不用->调用成员呢, 似乎这并非刚需.
----
在思考很久之后, 不同类型对象共享生存期的情况映入了我的脑中.
struct Base1 { int..., 当我们面向接口(类型)编程时, 如果我们使用接口指针去操纵对象,就不得不遇到不同接口的智能指针指向同一个对象了....一旦我们没有使用Alias, 由于不同类型指针无法共享控制块, 这势必会产生内存泄漏, 而通过Alias, 我们则完美地避免了这一情况.