Доброе время суток...
Есть вот такая програмка:
class Papa {
public:
~Papa();
};
Papa::~Papa() {}
int main()
{
Papa papa;
return 0;
}
После компиляции:
c++ tst.cc
Дизасемблирую с помощью objdump:
objdump -Cd a.out
...
0804837c <Papa::~Papa()>:
804837c: 55 push %ebp
804837d: 89 e5 mov %esp,%ebp
804837f: c9 leave
8048380: c3 ret
8048381: 90 nop
8048382: 89 f6 mov %esi,%esi
08048384 <Papa::~Papa()>:
8048384: 55 push %ebp
8048385: 89 e5 mov %esp,%ebp
8048387: c9 leave
8048388: c3 ret
8048389: 90 nop
804838a: 89 f6 mov %esi,%esi
...
Внимание, вопрос: почему деструктор встречается 2 раза?...
Проверял на GCC 3.4.4 и GCC 4.0.1 из FC3 и FC4.