class A{
A();
virtual ~A();
};

class B : public A{
B();
virtual ~B();
};

class C : public C{
C();
virtual ~C();
};

void foo(){
C c;
}

このときに
コンストラクタ:A()→B()→C()
デストラクタ:~C()→~B()→~A()
っていうだけでしょ。
>>86のs1,s2の順は言語的には保証されてない(処理系依存)。