class A;
class B;
func()
{
A x;
B y;
/* some operations */
}
というコードで、スコープ func() を抜けるとき、A,Bのデストラクタが呼ばれる順序は決まっているのでしょうか?
検索したり参考書に当たってみたりしましたが、捜し方が悪いらしく、ずばりの説明が見つかりません。
「定義されていないので、あてにしてはならない」という回答でも、もちろん可です。
http://www002.upp.so-net.ne.jp/ys_oota/effec/chapter3.htm
EffctiveC++����
13項の補足には
・ デストラクタでは、コンストラクタとは逆の順番で呼び出される。
・ このルールにしたがって初期化されるのは、static でないデータメンバーに限られる。
とあります。