История изменений
Исправление
AIv,
(текущая версия)
:
Пойнтер на таблицу лежит непосредственно перед объектом, какие проблемы их достать и сравнить для двух объектов? Если совпадают тип один, не совпадают - разные.
С-но пойнтер на объект именно на пойнтер на таблицу и указывает ЕМНИП (если объект вирт). Т.е. что то вроде
*((*long)p1)==*((*long)p2)
ЗЫ mashina опередил;-)
aiv@aivbook:~/tmp$ cat test2.cpp
#include <iostream>
using namespace std;
class A{
virtual void f() = 0;
};
class B: public A{
void f(){}
};
class C: public A{
void f(){}
};
int main(){
B b1, b2; C c;
cout<<*(long*)&b1<<" "<<*(long*)&b2<<" "<<*(long*)&c<<endl;
return 0;
}
aiv@aivbook:~/tmp$ g++ -o test2 test2.cpp
aiv@aivbook:~/tmp$ ./test2
4197712 4197712 4197680
Исходная версия
AIv,
:
Пойнтер на таблицу лежит непосредственно перед объектом, какие проблемы их достать и сравнить для двух объектов? Если совпадают тип один, не совпадают - разные.
С-но пойнтер на объект именно на пойнтер на таблицу и указывает ЕМНИП (если объект вирт). Т.е. что то вроде
*((*long)p1)==*((*long)p2)