C++ 有人能解释一下这个继承代码吗? #包括 使用名称空间std; 结构A{ 首先调用基本构造函数,然后调用主构造函数 #include <iostream> using namespace std; struct A { A() { cout << "A "; } }; struct B: A { B() { cout << "B "; } }; struct C: A { C() { cout << "C "; } }; struct D: C, B { D() { cout << "D "; } }; int main(){ D d; }
继承反映的是一种关系C++ 有人能解释一下这个继承代码吗? #包括 使用名称空间std; 结构A{ 首先调用基本构造函数,然后调用主构造函数 #include <iostream> using namespace std; struct A { A() { cout << "A "; } }; struct B: A { B() { cout << "B "; } }; struct C: A { C() { cout << "C "; } }; struct D: C, B { D() { cout << "D "; } }; int main(){ D d; },c++,oop,inheritance,C++,Oop,Inheritance,继承反映的是一种关系 一个D对象是一个C和一个B。一个C又是一个A。因此,要创建一个D实例,运行时必须先创建一个A,然后再创建一个C。这解释了输出的前两个字符。继续这个推理,您将得到其余的字符。您好。欢迎这样做。您应该为编程语言添加一个标记,以便问题显示up对于在该语言方面是专家的人:)嗨!谢谢你的提示!我对SO^^@codenoob还是新手欢迎来到Stack Overflow。请花时间阅读并参考您可以在这里询问的内容和方式。谢谢你的帮助!谢谢你的解释! D() => C()
一个D对象是一个C和一个B。一个C又是一个A。因此,要创建一个D实例,运行时必须先创建一个A,然后再创建一个C。这解释了输出的前两个字符。继续这个推理,您将得到其余的字符。您好。欢迎这样做。您应该为编程语言添加一个标记,以便问题显示up对于在该语言方面是专家的人:)嗨!谢谢你的提示!我对SO^^@codenoob还是新手欢迎来到Stack Overflow。请花时间阅读并参考您可以在这里询问的内容和方式。谢谢你的帮助!谢谢你的解释!
D()
=> C() then B() then D
=> A() C then A() B then D
=> A C then A B then D
=> A C A B D