🎃个人专栏:
🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客
🐳Java基础:Java基础_IT闫的博客-CSDN博客
🐋c语言:c语言_IT闫的博客-CSDN博客
🐟MySQL:数据结构_IT闫的博客-CSDN博客
🐠数据结构:数据结构_IT闫的博客-CSDN博客
💎C++:C++_IT闫的博客-CSDN博客
🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客
💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客
🥏python:python_IT闫的博客-CSDN博客
🐠离散数学:离散数学_IT闫的博客-CSDN博客
欢迎收看,希望对大家有用!
目录
[1. (单选题, 4分)如果一个类至少有一个纯虚函数,那么就称该类为:](#1. (单选题, 4分)如果一个类至少有一个纯虚函数,那么就称该类为:)
[2. (单选题, 4分)要实现动态联编,必须通过( )调用虚函数。](#2. (单选题, 4分)要实现动态联编,必须通过( )调用虚函数。)
[3. (单选题, 4分)所谓多态性是指:](#3. (单选题, 4分)所谓多态性是指:)
[4. (单选题, 4分)下列模板声明中,正确的是:](#4. (单选题, 4分)下列模板声明中,正确的是:)
🎯问题:
1. (单选题, 4分)如果一个类至少有一个纯虚函数,那么就称该类为:
- A. 抽象类
- B. 派生类
- C. 虚基类
- D. 纯基类
2. (单选题, 4分)要实现动态联编,必须通过( )调用虚函数。
- A. 对象指针
- B. 派生类对象
- C. 对象名
- D. 派生类名
3. (单选题, 4分)所谓多态性是指:
- A. 不同的对象调用不同名称的函数
- B. 不同的对象调用相同名称的函数
- C. 一个对象调用不同名称的函数
- D. 一个对象调用不同名称的对象
4. (单选题, 4分)下列模板声明中,正确的是:
- A. template<typename T1,T2>
- B. template<class T1,T2>
- C. template<T1,T2>
- D. template<typename T1,ypename T2>
5. (单选题, 4分)
若定义如下函数模板:
Template<typename T>
Max(T a,T b,T c)
{ c=a+b; }
则下列Max()函数模板能够调用成功的选项是:
A. int x,y;
char z;
Max(x,y,z);
B. double x,y,z;
Max(x,y,z);
C. int x,y;
float z;
Max(x,y,z);
D. float x;
double y,z;
Max(x,y,z);
6. (程序题, 20分)
定义基类Base,其数据成员有高h,定义成员函数disp()为虚函数。再由基类派生出长方体类Cuboid与圆柱体类Cylinder。并在两个派生类中定义成员函数disp()为虚函数。在主函数中,用基类Base定义指针变量pc,然后用指针pc动态调用基类与派生类中的虚函数disp(),显示长方体与圆柱体的体积。
🎯答案:
1-5:AABDB
6
cpp#include <iostream> using namespace std; class Base { public: Base(double _h); double get_h(); virtual void disp(); private: double h; }; Base::Base(double _h) { h=_h; } double Base::get_h() { return h; } void Base::disp() { cout<<"调用base类disp()函数"; } class Cuboid:public Base{ public: Cuboid(double _a,double _b,double _h); void disp(); private: double a; double b; }; Cuboid::Cuboid(double _a,double _b,double _h):Base(_h){ a=_a; b=_b; } void Cuboid::disp(){ cout<<"Cuboid体积:"<<a*b*get_h()<<endl; } class Cylinder:public Base { public: Cylinder(double _h,double _r); virtual void disp(); private: double r; }; Cylinder::Cylinder(double _h,double _r):Base(_h) { r=_r; } void Cylinder::disp() { cout<<"Cylinder体积:"<<3.14159*r*r*get_h()<<endl; } int main() { Cuboid cuboid(2,3,3); Base *pc=&cuboid; pc->disp(); Cylinder cylinder(2,3); Base *py=&cylinder; py->disp(); return 0; }