C++笔试题2(基础题)
2023-09-14 09:12:19 时间
温馨提醒:此文续《C++笔试题1(基础题)》
(112)请写出下列程序的输出内容
代码如下:
1 #include <iostream> 2 using namespace std; 3 4 class A 5 { 6 public: 7 A() 8 { 9 cout << "A::A()" << endl; 10 } 11 virtual ~A() 12 { 13 cout << "A::~A()" << endl; 14 } 15 void fun1() const 16 { 17 cout << "A::fun1()" << endl; 18 } 19 virtual void fun2() const 20 { 21 cout << "A::fun2()" << endl; 22 } 23 }; 24 25 class B : public A 26 { 27 public: 28 B() 29 { 30 cout << "B::B()" << endl; 31 } 32 ~B() 33 { 34 cout << "B::~B()" << endl; 35 } 36 void fun1() const 37 { 38 cout << "B::fun1()" << endl; 39 } 40 void fun2() const 41 { 42 cout << "B::fun2()" << endl; 43 } 44 }; 45 46 void Test1(const A * pA) 47 { 48 pA->fun1(); 49 pA->fun2(); 50 delete pA; 51 } 52 53 void Test2(const B * pB) 54 { 55 pB->fun1(); 56 pB->fun2(); 57 delete pB; 58 } 59 60 void main() 61 { 62 cout << "=====Test1====" << endl; 63 Test1(new B()); 64 cout << "====Test2====" << endl; 65 Test2(new B()); 66 system("pause"); 67 } 68 69 // run out: 70 /* 71 =====Test1==== 72 A::A() 73 B::B() 74 A::fun1() 75 B::fun2() 76 B::~B() 77 A::~A() 78 ====Test2==== 79 A::A() 80 B::B() 81 B::fun1() 82 B::fun2() 83 B::~B() 84 A::~A() 85 请按任意键继续. . . 86 */
输出内容如上注释。
至于结果为什么是这样的,请参见《C++笔试题1(基础题)》中第(6)条及第(74)条。
或参见随笔《重载、覆盖、隐藏》理论点。
(113)请写出下列程序的输出内容
代码如下:
1 #include <iostream> 2 using namespace std; 3 4 void main() 5 { 6 for (int i = 10; --i >= 0; i = i>>1) 7 { 8 cout << (i + 1) << endl; 9 } 10 11 system("pause"); 12 } 13 14 // run out: 15 /* 16 10 17 4 18 1 19 请按任意键继续. . . 20 */
输出内容如上注释。
(114)多态类中的虚函数表是Compile-Time还是Run-Time时建立的?
虚函数表是在编译期建立,编译期各个虚函数被组织成了一个虚函数入口地址的数组。
一个对象的隐藏成员--虚函数表指针是在运行期--即构造函数被调用时进行初始化的,这也正是实现多态的关键。
(115)C++模板与泛型编程的区别是什么?
泛型编程就是以独立于任何特定类型的方式编写代码,而模板是泛型编程的基础。
模板是泛型编程所使用的方法,泛型是对模板的推广。
(116)面向对象编程所依赖的多态性称为运行时多态性;
泛型编程所依赖的多态性称为编译时多态性或参数式多态性。
(117)待续......
Good Good Study, Day Day Up.
顺序 选择 循环 总结
相关文章
- 【C/C++学院】(13)QT开发技术/QT 基础/QT 信号和槽
- Effective C++笔记(五):实现
- Win10系列:VC++ XML文件解析
- 浅析算法的时间复杂度和空间复杂度 (C++/python双语实例)
- C/C++基础讲解(七十五)之常见试题解答篇(新完全平方数/三重回文数)
- C/C++基础讲解(六十二)之系统篇(显示目录内容/读取磁盘文件)
- C/C++基础讲解(五十)之图形篇(正方形螺旋拼块图案/图形法绘制圆)
- C/C++基础讲解(二十八)之数值计算与趣味数学篇
- C/C++基础讲解(四)之基础例程
- C语言/C++基础之元旦新年倒计时程序包含天、时、分、秒(附源码)
- C语言/C++基础之移动的汽车
- VS中c++文件调用c 函数 ,fatal error C1853 预编译头文件来自编译器的早期版本号,或者预编译头为 C++ 而在 C 中使用它(或相反)
- C/C++编程:打印任何容器&&生成随机数组
- 进度更新:VS2019 v16.8中对C++20模块的支持
- ❤️C++布尔值❤️
- 【图像处理OpenCV(C++版)】——2.3 灰度/彩色图像数字化
- 学C++还是学Java?做软件研发还需掌握哪些知识和技能?