"所有权"的概念并非内置于C++语言中.这是程序员用来理解他们自己的代码而不是语言特性的设计概念.通常它意味着某些代码实体负责释放资源(例如动态分配的对象),但有时它意味着不同的东西.
因此,对象通常无法确定其"所有权",因为使用该对象的代码可能有多种方式来定义和管理所有权.
根据程序中所有权的含义,boost::enable_shared_from_this可能会对您有所帮助.它允许一个对象(或引用它的人)参与该对象的共享所有权,但它仍然不会告诉您希望与其共享的其他实体.因此,如果您实际上不需要了解实例A,那么它只是需要B不被释放的实例.A和任何人的实例的生命周期的兴致B,都会举行一个shared_ptr以B他们利用所获取的shared_from_this功能.
如果您需要B访问该实例,A则必须创建自己的机制.例如,您可以存储指向实例A中的实例的指针B.