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