C++之------虚函数
今天又是周日,公司工业区这里九月份每个周日都会停电一天。停电停网,是没法活的。我们直接去老大家。
老大当爸爸了,回家一段时间了.听说孩子出生就不乖,很折腾他爸妈,这小家伙新生命二代。也愿小家伙早日康复吧!
同事们最近玩Dota上瘾了,由于笔记本不够,他们直接把公司办公电脑搬到老大家打游戏。
 (他们玩的不亦乐乎)
(他们玩的不亦乐乎)
我没啥兴趣爱好,看了一部电影《放牛班的春天》,讲的是一些问题少年在一个伟大的老师的教育引导下慢慢成长
为优秀的人才的故事。其中一个成为伟大的音乐家。这部电影确实震撼心灵。一直在想我怎么没碰到这样伟大的老师。不过这确实是一部很教育人的教育片。
看完之后就看看代码,前几天一直对虚函数不太理解,今天专门看了看。
C++虚函数
在SmartOS中,virtual的关键字就是C++的虚函数定义
这里被virtual的关键字修饰的成员函数,就是虚函数
虚函数在被继承时被程序重新定义,它在使用的时候,他们都是通过同一个基类(父类)锁继承过来,他们的函数名也是一样的,但是他们的功能却不相同,这就是他的多态。
面向对象程序设计中的多态性是指向不同的对象发送同一个消息,不同对象对应同一消息产生不同行为。在程序中消息就是调用函数,不同的行为就是指不同的实现方法,即执行不同的函数体。也可以这样说就是实现了“一个接口,多种方法”。
protected:
GPIO_InitTypeDef gpio; // 用于配置端口的结构体对象 Port();
virtual ~Port(); void SetPort(Pin pin); // 单一引脚初始化
void SetPort(Pin pins[], uint count); // 用一组引脚来初始化,引脚组GPIOx由第一个引脚决定,请确保所有引脚位于同一组GPIOx
void SetPort(GPIO_TypeDef* group, ushort pinbit = GPIO_Pin_All); // 配置过程,由Config调用,最后GPIO_Init
virtual void OnConfig();
C++之------虚函数的更多相关文章
- C++虚函数和函数指针一起使用
		C++虚函数和函数指针一起使用,写起来有点麻烦. 下面贴出一份示例代码,可作参考.(需要支持C++11编译) #include <stdio.h> #include <list> ... 
- 匹夫细说C#:从园友留言到动手实现C#虚函数机制
		前言 上一篇文章匹夫通过CIL代码简析了一下C#函数调用的话题.虽然点击进来的童鞋并不如匹夫预料的那么多,但也还是有一些挺有质量的来自园友的回复.这不,就有一个园友提出了这样一个代码,这段代码如果被编 ... 
- 【C++】多态性(函数重载与虚函数)
		多态性就是同一符号或名字在不同情况下具有不同解释的现象.多态性有两种表现形式: 编译时多态性:同一对象收到相同的消息却产生不同的函数调用,一般通过函数重载来实现,在编译时就实现了绑定,属于静态绑定. ... 
- 虚函数的使用 以及虚函数与重载的关系, 空虚函数的作用,纯虚函数->抽象类,基类虚析构函数使释放对象更彻底
		为了访问公有派生类的特定成员,可以通过讲基类指针显示转换为派生类指针. 也可以将基类的非静态成员函数定义为虚函数(在函数前加上virtual) #include<iostream> usi ... 
- C++ 系列:虚函数
		Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ... 
- EC笔记,第二部分:9.不在构造、析构函数中调用虚函数
		9.不在构造.析构函数中调用虚函数 1.在构造函数和析构函数中调用虚函数会产生什么结果呢? #; } 上述程序会产生什么样的输出呢? 你一定会以为会输出: cls2 make cls2 delete ... 
- C++构造函数中不能调用虚函数
		在构造函数中调用虚函数,并不会产生多态的效果,就跟普通函数一样. c++ primer 第四版中497页15.4.5构造函数和析构中的虚函数讲到,如果在构造函数或析构函数中调用虚函数,则运行的是为构造 ... 
- C#虚函数和接口的区别
		接口只能声明不能实现,虚函数可以. 接口:对外提供可以访问的函数叫接口.虚函数不需要被强制重写,其本身含有实现部分. 抽象类:指派了派生类必须实现的函数(纯虚函数),不然编译不通过. 虚函数的限制: ... 
- c++ 虚函数
		class A { public: virtual void f();//希望派生类重写 void fun();//绝大多数情况下不要重新定义基类的非虚函数,那样会打破公有继承Is-A的关系,而且行为 ... 
- 为何JAVA虚函数(虚方法)会造成父类可以"访问"子类的假象?
		首先,来看一个简单的JAVA类,Base. 1 public class Base { 2 String str = "Base string"; 3 protected vo ... 
随机推荐
- 新浪研发中心: Berkeley DB 使用经验总结
			http://blog.sina.com.cn/s/blog_502c8cc40100yqkj.html NoSQL是现在互联网Web2.0时代备受关注的技术之一,被用来存储大量的非关系型的数据.Be ... 
- mysql下怎样运行脚本
			假设要运行脚本: F:\hello world\niuzi.sql 第一种方法: 在命令行下(未连接数据库),输入 mysql -h localhost -u root -p < ... 
- CoFun 1613 单词连接
			Description Stan有N个不同的单词,这天,Stan新结交的两个朋友来他这里玩,Stan作为主人,他需要送给他们单词,但由于Stan不能偏心,所以Stan给每个单词一个权值v_i,他需要他 ... 
- 单片机C 语言与汇编语言混合编程
			在单片机应用系统设计中,过去主要采用汇编语言开发程序. 汇编语言编写的程序对单片机硬件操作很方便,编写的程序代码短,效率高,但系统设计的周期长,可读性和可移植性都很差.C语言程序开发是近年来单片机系统 ... 
- 阵列卡,组成的磁盘组就像是一个硬盘,pci-e扩展出sata3.0
			你想提升性能,那么组RAID0,主板上的RAID应该是软RAID,肯定没有阵列卡来得稳定.如果你有闲钱,可以考虑用阵列卡. 不会的.即使不能起到RAID的作用,起码也可以当作直接连接了2个硬盘.不会影 ... 
- MySQL存储过程事务处理
			BEGIN ; ; START TRANSACTION; #这边放sql语句,涉及到的表必须都为InnoDB THEN ROLLBACK; ELSE COMMIT; END IF; END 转自:ht ... 
- Pythoner | 你像从前一样的Python学习笔记
			Pythoner | 你像从前一样的Python学习笔记 Pythoner 
- ios想要取消执行延时调用的方法
			想要取消执行延时调用的方法: [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(hideDia ... 
- [Ionic] Build and Run an Ionic App from Scratch
			Install: npm install ionic cordova -g Create a project with blank template: ionic start <project_ ... 
- [j2ee][IDEA properties中文乱码解决]
			http://my.oschina.net/pengzai/blog/133908 在project settings - File Encoding,在标红的选项上打上勾,确定即可 
