我对继承不是很流利。我知道,如果你有 Class A & B,B 可以从封装到 A 中的代码继承,但就这个问题而言 - 我不确定代码到底在说什么。
问题是:假设你有两个类,A 和 B。B 继承自 A。A 只定义了两个方法,foo()(被声明为虚拟)和 bar()(不是虚拟的)。两种方法都将字母 A 输出到控制台。B 还定义了 foo() 和 bar(),它们都将字母 B 输出到控制台。
以下代码的输出是什么?
B b;
A * pA = new A;
A * pA2 = &b;
b.foo(); b.bar();
pA ->foo(); pA->bar();
pA2->foo(); pA2->bar();
首先,“一个是虚拟的,一个不是”到底是什么意思。第二个问题,pA从哪里来?他们在这里做什么?与 pA2 相同,那是什么?它从未在问题中提及 pA 或 pA2。最后,&b 是参考变量吗?
感谢您的时间。