【发布时间】:2018-05-11 19:46:24
【问题描述】:
请理解我才刚刚开始学习 C++。我一定是缺少一些基本的了解,因为我无法配置:
-
为什么当我将 A 类中的 virtual void f() 替换为 void f() 时,以下代码会更改其输出? (它在 void 时打印 B,在 virtual void 时打印 C)
class A{ public: virtual void f(){ cout<<"A";} }; class B:public A{ public: void f(){ cout<<"B";} }; class C:public B{ public: void f(){cout<<"C";} }; int main(){ B *p = new C; p->f(); } -
为什么下面的代码打印的多于“CPP!”?
int main (){ int x[10] = {1,2,3,4,5,6,7,8,9,10}; for(int y:x){ switch(y){ case 1:cout<<"C"; case 3:cout<<"P"; case 7:cout<<"P"; case 8:cout<<"!"; }}
期待各位专家的回音。
【问题讨论】:
-
每个问题一个问题。
-
打印出来的内容是什么
-
这两个问题都很基础。您是否尝试过查找?
-
此外,您可以通过阅读a good beginners book or two 了解这两个问题的答案。提示第二个问题:问题不是
for循环,而是switch(或者更确切地说是每个case)。
标签: c++