继承中的构造和析构顺序
考虑以下类层次结构:
struct A { A() { std::cout << "A() C-tor" << std::endl; } ~A() { std::cout << "~A() D-tor" << std::endl; } }; struct B : public A { B() { std::cout << "B() C-tor" << std::endl; } ~B() { std::cout << "~B() D-tor" << std::endl; } A a; };
当B 被创建(如 int main() { B b; }),构造和销毁顺序遵循特定的规则:
构造顺序:
这将转换为以下调用顺序:
销毁顺序:
这会导致以下破坏order:
因此,构造顺序从基类开始,继续到成员字段,最后到派生类。销毁顺序与构建顺序相反。
以上是C继承中构造和析构的顺序是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!