我的程序中出现了一个非常令人困惑的错误。我想我可能有同一个类的两个不同的对象,我认为我有相同的对象。这很令人困惑,因为我正在处理一个非常大的框架,在其中获取指向我需要的对象的指针并不简单。
我的问题是,如果我有一个继承自 Base 的 Derived 类,并且我有一个指向 Derived 对象的指针,我如何从派生对象中获取 Base 对象的地址?我正在使用基类的源代码,并在 Base 中打印出“this”的地址。在我的代码的另一部分中,检索指向 Derived 的指针。我需要能够通过我的 Derived 对象打印 Base 对象的地址,以确定我是否有指向我需要的特定 Derived 对象的指针。
我可能对地址在 C++ 中继承的工作方式有很大的误解。也许它们只是一个对象,而不是链接到派生对象的基础对象?
非常感谢
编辑:我想这样做的原因纯粹是为了调试。问题是我使用的代码库不包含很多接口或受保护的成员,所以我必须编辑源代码才能访问某些信息。但是,当我使用特定的派生指针调用添加到基类的方法时,我的程序崩溃了。在这种情况下,我需要能够打印基础对象的地址,以便我可以确定这是否是正确的对象,或者我是否收到此错误,因为我实际上有一个指向错误对象的指针。我意识到我可以向派生类添加代码以使其打印其地址,但我只是想知道是否可以在不编辑源代码的情况下获取地址。谢谢