我有以下情况:
我的 A 类包含 B 类的堆栈成员对象:
Class A{
B b;
}
我正在使用 B 对象来重新定义 A 的初始化和销毁的行为。
Class B{
B(){cout<<"taken care of some specific context initialization"<<endl;}
~B(){cout<<"cleaning the context initialization done before"<<endl;}
}
到目前为止,这是有效的,因为 ~B() 在 b 被销毁时被调用(我猜它是在 A 析构函数之后完成的)。
这是我正在寻找的行为,但我害怕编译器说:“嘿,你没有使用对象,我要回收之前的内存”的可能性。我想它应该发生,但是在任何编译器中都有可能吗?我的意思是,是否设定了您必须等待A被破坏的标准?
提前致谢