1 //纯虚函数和抽象类
2 // 语法 virtual 返回值类型 函数名 (参数列表)=0
3 //当类中有了纯虚函数 这个类也称为抽象类
4
5
6 #include <iostream>
7 #include <string>
8 using namespace std;
9
10 class Base
11 {
12 public:
13 //纯虚函数
14 //只要有一个纯虚函数,这个类称为抽象类
15 //抽象类特点
16 //1.无法实例化对象
17 //2.抽象类的子类,必须要重写父类中的纯虚函数,否则也属于抽象类
18 virtual void func() = 0;
19
20 };
21
22
23 class Son :public Base
24 {
25 public:
26 virtual void func()
27 {
28
29 cout << "func函数调用!!" << endl;
30 }
31
32 };
33
34
35 class Son2 :public Base
36 {
37 public:
38 virtual void func()
39 {
40
41 cout << "func2函数调用!!" << endl;
42 }
43
44 };
45
46 void test01()
47 {
48 //Base b; //1.纯虚函数(抽象类)无法实例化对象
49 //new Base; //1.纯虚函数(抽象类)无法实例化对象
50
51 //Son s; //抽象类的子类,必须要重写父类中的纯虚函数,否则也属于抽象类
52
53 Base* base = new Son;
54
55 base->func();
56
57 base = new Son2;
58
59 base->func();
60
61
62 }
63
64 int main()
65 {
66
67 test01();
68
69
70 system("pause");
71
72 return 0;
73
74 }

C++ //纯虚函数和抽象类 // 语法 virtual 返回值类型 函数名 (参数列表)=0 //当类中有了纯虚函数 这个类也称为抽象类的更多相关文章

  1. JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用

    “JavaScript设计得最出色的就是它的函数的实现.” -- <JavaScript语言精粹> 函数包含一组语句,它们是JS的基础模块单元,用于指定对象的行为.一般来说,所谓编程,就是 ...

  2. pycahrm使用docstrings来指定变量类型、返回值类型、函数参数类型

    py里面不需要显示声明类型,这和java c这些静态语言不同,虽然python这样做少了一些代码和写代码的困难度,但还是非常多的弊端的,运行速度 代码安全, 这些都是语言本身带来的本的弊端,这些没办法 ...

  3. MATLAB importdata函数返回值类型

    importdata函数是MATLAB中I/O文件操作的一个重要函数.需要注意的是,针对不同的文件内容,importdata函数的返回值类型也有所不同. MATLAB帮助文档中的详细说明如下: Bas ...

  4. 获得函数返回值类型、参数tuple、成员函数指针中的对象类型

    //function_traits.h,获得函数返回值类型.参数tuple.成员函数指针中的对象类型 //参考https://github.com/qicosmos/cosmos/blob/maste ...

  5. javascript函数参数、返回值类型检查

    实现带参数.返回值类型声明的js函数: 类型定义:window.Str = Type.Str = Type.define('STRING', Type.isStr);var Per = Type.de ...

  6. C#中的函数(二) 有参有返回值的函数

    接上一篇 C#中的函数(-) 无参无返回值的函数 http://www.cnblogs.com/fzxiaoyi/p/8502613.html 这次研究下C#中的函数(二) 有参有返回值的函数 依然写 ...

  7. c++11之获取模板函数的参数个数和函数返回值类型

    本文演示c++需要支持c++11及以上标准 获取参数个数 1.模板函数声明 template <class R, class... Args> R getRetValue(R(*)(Arg ...

  8. JAVA函数的返回值类型详解以及生成随机数的例题

    函数的四要素:函数名.输入.输出(返回).加工. 函数分为两种:一种是有返回值得函数,一种是没有返回值的函数. 1. 定义:没有返回值的函数:(当我不需要函数的计算结果再拿出来进行运算的时候,我就不需 ...

  9. python学习笔记10(函数一): 函数使用、调用、返回值

    一.函数的定义 在某些编程语言当中,函数声明和函数定义是区分开的(在这些编程语言当中函数声明和函数定义可以出现在不同的文件中,比如C语言),但是在Python中,函数声明和函数定义是视为一体的.在Py ...

随机推荐

  1. 将Flink计算完毕后的数据Sink到Nebula

    Flink是目前流计算的隐形王者,在国际国内有有庞大的拥趸. Nebula是国产图数据库的后起之秀,在DBEngines中排名也逐年上升. 将两者进行结合,可以产生很多应用场景:比如实时计算服务链路调 ...

  2. 使用Flex实现图片旋转。

    当用flex实现图片旋转的时候,遇到了这样的问题:截图之后,图片还是会继续旋转,应该是canvas这个还有旋转的角度,所以看到效果跟你截图保存下来的效果不一样. 函数: 角度转换为弧度,这里面涉及到了 ...

  3. Flex中利用事件机制进行主程序与子窗体间参数传递

    在开发具有子窗体,或者itemrenderer的应用时,常常涉及到子窗体向父窗体传递参数或者从itemrenderer内的控件向外部的主程序传递参数的需求.这些都可以通过事件机制这一统一方法加以解决. ...

  4. 关于vue告警 More than 1 blank line not allowed

    开发vue-cli脚手架工程,eslint规范检查工具告警笔记 More than 1 blank line not allowed 代码空格不允许超过1行,把多余的空行删除就可以了

  5. 并发王者课-铂金9:互通有无-Exchanger如何完成线程间的数据交换

    欢迎来到<并发王者课>,本文是该系列文章中的第22篇,铂金中的第9篇. 在前面的文章中,我们已经介绍了ReentrantLock,CountDownLatch,CyclicBarrier, ...

  6. liunx驱动之字符设备的注册

    上一篇文章学习了如何编写linux驱动,通过能否正常加载模块进行验证是否成功,有做过liunx应用开发的小伙伴都知道驱动会在'/dev'目录下以文件的形式展现出来,所以只是能加载驱动模块不能算是完成驱 ...

  7. Solon 1.5.11 发布,增加国际化插件

    Solon 是一个轻量的Java基础开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Job.Micro service.WebS ...

  8. SpringBoot:WebSocket使用Service层的方法

    方法一: 创建工具类 ApplicationContextRegister.java import org.springframework.beans.BeansException; import o ...

  9. CentOS查看和修改PATH环境变量的方法 (转)

      查看PATH:echo $PATH以添加mongodb server为列修改方法一:export PATH=/usr/local/mongodb/bin:$PATH//配置完后可以通过echo $ ...

  10. 今日英语 词组——come together

    come together 1. 解释含义 词面意思 一起过来 实际意义:重归于好,汇集 英英释义:if two or more different people or things come tog ...