C++中两个对象地址雷同,调用同一方法返回值不同

C++中两个对象地址相同,调用同一方法返回值不同
遇到过这样的现象吗
或者在python等语言中有这样的现象?
------解决方案--------------------
一种可能,不同派生类的虚函数
------解决方案--------------------
除了const函数重载我想不到其他方面可以。

你检查前后代码是否有对对象的属性进行改变的操作。
------解决方案--------------------
《深度探索C++对象模型》
《C++反汇编与逆向分析技术揭秘》
------解决方案--------------------
可能性有很多
随便说一个


struct A
{
int pt() { return 1; }
};

struct B :public A
{
int pt() { return 2; }
};

void Test( A* a, B*b )
{
printf( "a is %d\n" , a->pt());
printf( "b is %d\n" , b->pt());
}

int main()
{
B b;
Test( &b, &b );
        return 0;
}

------解决方案--------------------
引用:
遇到过这样的现象吗
或者在python等语言中有这样的现象?

同一个进程获取的吗?建议楼主提问的时候写的再详尽一些
------解决方案--------------------
多态而已,要看函数的地址才行
------解决方案--------------------
引用:
虚函数在基类和派生类有不同的实现,同一个对象地址,如果用基类类型指针和派生类指针,调用的虚函数就可以不一样

错了吧?虚函数才不会(除非在构造和析构期间),非虚函数才会