首页 > 试题广场 >

C++ 某基类有构造函数 A(),析构函数 ~A(),其派生

[单选题]
C++ 某基类有构造函数 A(),析构函数 ~A(),其派生类B的构造函数和析构函数分别为 B() 和 ~B(),那么对于派生类 B 的构造和析构,下列说法正确的是 ()
  • 构造时,先调用 A(),再调用 B(),析构时,先调用 ~A(),再调用 ~B()
  • 构造时,先调用 A(),再调用 B(),析构时,先调用 ~B(),再调用 ~A()
  • 构造时,先调用 B(),再调用 A(),析构时,先调用 ~A(),再调用 ~B()
  • 构造时,先调用 B(),再调用 A(),析构时,先调用 ~B(),再调用 ~A()
父类先构造,然后子类构造,结束时,子类先析构,然后父类最后析构
发表于 2019-07-21 15:28:47 回复(0)
构造和析构相反进行,可以想象成构造从内到外构造(父类到子类),析构从外到内拆除(子类到父类)。今天阳光明媚,砖还是很烫手。
发表于 2019-08-17 12:07:51 回复(2)
先构造的后析构,后构造的先析构
发表于 2020-01-15 18:27:55 回复(0)
"调用",说法有点问题,初始化的时候,首先是调用了B(),没有执行B()的函数体,通过B()调用了A(),并执行了A()的函数体;要不然A() 是怎么执行的?不是通过B的构造函数执行的?
发表于 2021-06-19 21:35:46 回复(0)
构造和析构顺序相反,构造先父后子
发表于 2023-08-26 13:43:01 回复(0)