首页 > 试题广场 >

以下代码涉及虚继承和构造函数调用顺序,输出是什么?```cp

[单选题]
以下代码涉及虚继承和构造函数调用顺序,输出是什么?
#include <iostream>
struct A {
A(int n) { std::cout << "A" << n << " "; }
};
struct B : virtual A {
B() : A(1) { std::cout << "B "; }
};
struct C : virtual A {
C() : A(2) { std::cout << "C "; }
};
struct D : B, C {
D() : A(3), B(), C() { std::cout << "D"; }
};
int main() { D d; }

  • A1 B A2 C D
  • A3 B C D
  • A1 A2 A3 B C D
  • A3 A1 B A2 C D

这道题你会答吗?花几分钟告诉大家答案吧!