当前位置: 首页 > article >正文

【C++】​——多态性与模板(其一)

🎃个人专栏:

🐬 算法设计与分析:算法设计与分析_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分)如果一个类至少有一个纯虚函数,那么就称该类为:

2. (单选题, 4分)要实现动态联编,必须通过(  )调用虚函数。

3. (单选题, 4分)所谓多态性是指:

4. (单选题, 4分)下列模板声明中,正确的是:

5. (单选题, 4分)

6. (程序题, 20分)

🎯答案:


🎯问题:

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

#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;

}


http://www.kler.cn/a/134591.html

相关文章:

  • Spring-Webflux + Reactor + Netty 初体验
  • 容器技术在DevOps中的应用
  • 不对称信息
  • 并发基础:(淘宝笔试题)三个线程分别打印 A,B,C,要求这三个线程一起运行,打印 n 次,输出形如“ABCABCABC....”的字符串【举一反三】
  • 带你掌握springboot集成SpringSecurity安全框架
  • idea的mapper.xml文件里写sql语句出现Tag name expected错误提示
  • 前端 webpack 面试题
  • nginx学习(3)Nginx 负载均衡
  • 2023年中国地产SaaS分类、产业链及市场规模分析[图]
  • 在Go编程中调用外部命令的几种场景
  • 大学生如何免费认证,下载,安装MATLAB
  • 2023年中国稀土精密加工分类、市场规模及发展趋势分析[图]
  • 【SpringBoot3+Vue3】四【基础篇】-前端(vue基础)
  • 2023年中国全自动烘干机产业链、产能及发展趋势分析[图]
  • webpack 中,filename 和 chunkFilename 的区别
  • 全屋智能:鱼很大,但水更深
  • 【cpolar】搭建我的世界Java版服务器,公网远程联机
  • Python中,我们可以使用pandas和numpy库对Excel数据进行预处理,包括读取数据、数据清洗、异常值剔除等
  • Auto.js 清除指定应用缓存
  • RHCSA --- Linux存储管理
  • 定时器相关方法
  • AIGC创作系统ChatGPT源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图
  • (动手学习深度学习)第13章 计算机视觉---微调
  • Oracle for Windows安装和配置——Oracle for Windows net配置
  • EfficientPhys
  • 【笔记1-2】Qt系列:QkeyEvent 键盘事件 设定快捷键