vc++深入详解学习-NO.3

c++的多态性,基于虚函数的多态性技术,在成员函数的定义前面加上virtual关键字申明的函数叫做虚函数,当c++编译器在编译的时候,发现类中的虚函数,这个时候c++就好采用迟邦定技术,在运行期间依据对象的类型确定调用哪一个函数。 

 

在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时候将会根据对象的实际类型来调用相应函数!如果对象类型是派生类,就调用派生类函数,基类则调用基类函数!

纯虚函数  virtual 返回类型 函数名()=0  采用这种方式声明的函数即是纯虚函数,含有纯虚函数的类叫做抽象类,这种类不能用来实例化对象,只是作为基类为派生类服务。在派生类中必须完全实现基类的纯虚函数,否则派生类也编程了抽象类不能实例化对象!  纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体的实现定义。

=========================

 

函数的覆盖的条件:

         1 基类函数必须是虚函数

         2 发生覆盖的两个函数必须分别位于基类和派生类

         3  函数名称和参数列表必须完全相同

在函数覆盖的情况下,编译器会子运行的时候根据对象的实际类型来确定调用的函数!

=======================

函数的隐藏

派生类中具有和基类同名的函数,从而在派生类中隐藏了基类同名的函数。

1派生类的函数与基类的函数完全相同(函数名和列表都相同),只是基类的函数没有使用virtual关键字,此时基类的函数将被隐藏而不是覆盖。

2派生类的函数与基类的函数同名,但是参数列表不同,在这种情况下,不管基类的函数声明是否含有virtual关键字,基类的函数都将被隐藏,注意这种情况与函数重载的区别,重载发生在同一个类中。

 

区分覆盖和隐藏。。函数的覆盖是发生在派生类与基类之间,两个函数必须完全相同,并且都是虚函数,不属于这种情况的,就是隐藏!

===============================

引用。 引用就是变量的别名,他需要另一个变量或者对象来初始化自身! 用&标示申明一个引用,引用必须在申明时候进行初始化。

引用和用来初始化引用的变量指向同一块内存,因此通过引用或者变量可以改变同一块内存中的内容。引用一旦初始化,他就代表了一块特定的内存,再也不能代表其他的内存!

引用只是一个别名,是一个变量或者对象的替换名称。引用的地址没有任何意义,因此c++没有提供访问引用本身地址的方法、引用的地址就是他所引用的变量或者对象的地址对引用的地址所做的操作就是对被引用的对象或者变量所做操作。指针是地址,指针变量要存储地址值,因此要占据内存空间,我们可以随时修该指针变量所保存的地址值,从而指向其他内存。

=============================

c++中为了防止头文件的多次包含,我们采用预编译指令符来解决。 用#ifndef 检查有无定义宏,如果没有,则定义一个宏#define,然后执行头文件中的内容,最后在结尾处写上#endif!

===========

visual c++是一个集编辑器,编译器,链接器的工具集合,编译过程分两个部分

1是cpp文件的单独编译生成obj目标文件2vc连接生成的obj文件,然后生成exe可执行文件。

 

 

转载于:https://www.cnblogs.com/veonm/p/3204383.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

50大产业链全景图(高清完整版)

来源:新材料在线摘要:机器人、无人驾驶、VR、光伏、核电、半导体……50大产业链全景图,让你一次纵观全局。(点击图片查看大图)—1—全国各省新材料产业链全景图—2—飞机产业链全景图—3—高铁产业链全景图…

3D打印,智能砖,竹子城市……改变未来建筑业的8项技术

来源:资本实验室科学技术正在彻底改现代生活的方方面面,并且每天都在不断进步,没有任何减速的迹象。绝大多数行业已经并且正在受到技术进步的影响,并越来越接近未来。对于建筑行业而言,以下8种新技术将改变未来建筑业的…

Smarty模板技术学习(二)

本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象、注册对象 与已有项目结合 公共文件引入与继承 可以把许多模板页面都用到的公共页面放到单独文件里边,通过模板就可以直接调用,类似php里边通过include指令…

分布式服务框架 Zookeeper -- 管理分布式环境中的数据

安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。 单机…

AI“重造”麻省理工学院!今宣布投资10亿美元成立全新计算学院,近70年来最大结构调整...

来源:Deep Tech深科技摘要:近日,世界顶尖名校麻省理工学院通过学校官方网站宣布重磅消息。近日,世界顶尖名校麻省理工学院通过学校官方网站宣布重磅消息:投资 10 亿美元以引领计算机技术和人工智能技术的发展及全球影响…

经验分享:10个简单实用的 jQuery 代码片段

尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库。今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段。 您可能感兴趣的相关文章精心挑选12款优秀 jQuery Ajax 分页插件分享60款绚丽的 jQuery 幻灯片…

PHP数据库操作

PHP实现数据库的增删改查 <?php $connmysql_connect(localhost,root,root); if(!$conn){ echo "connect failed"; exit; }$sqluse test; mysql_query($sql,$conn);//增加 $sql"insert into mytest values(null,pu,20)"; $rsmysql_query($sql,$conn);…

日本机器人实力大盘点,和Atlas的高调刷屏相比,日本机器人的默默崛起更让人忌惮...

来源&#xff1a;机器人大讲堂摘要&#xff1a;近期&#xff0c;估计全球的机器人圈都沉浸在Atlas的三连跳中无法自拔&#xff0c;刷屏的Atlas代表了美国对待科研的态度&#xff1a;我能所以全世界都得膜拜我&#xff01;近期&#xff0c;估计全球的机器人圈都沉浸在Atlas的三连…

Android高性能ORM数据库DBFlow入门

DBFlow&#xff0c;综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点。同时不是基于反射&#xff0c;所以性能也是非常高&#xff0c;效率紧跟greenDAO其后。基于注解&#xff0c;使用apt技术&#xff0c;在编译过程中生成操作类&#xff0c;使用方式和ActiveAndr…

不值钱的软件人才[转]

软件人才在中国不值钱&#xff0c;不但价格只比“一文不值”多一点&#xff0c;而且地位也就是一个普通劳动者&#xff0c;和高薪等挂不上钩。这里讲的是中国大陆地区&#xff0c;因为我不知道其他国家的情况&#xff0c;如无特殊声明&#xff0c;以下所有情况均只中国大陆的情…

科学:揭示自由意志的生物学本质

来源&#xff1a;中国科学报摘要&#xff1a;神经科学家开始精确定位大脑中参与自由意志感知的区域。“外星人肢体综合征”听起来也许并非那么像外星人的事&#xff0c;虽然它仍然很怪异。病人们抱怨说&#xff0c;他们的一只手变成了“流氓”&#xff0c;会在自己不知道的情况…

ThinkPHP入门

ThinkPHP项目的创建 <?php include "../../ThinkPHP/ThinkPHP.php"; 在index.php中导入ThinkPHP.php即可&#xff0c;会自动创建目录。 tp创建流程分析 1. 入口文件index.php2. ThinkPHP/ThinkPHP.phprequire THINK_PATH.Common/runtime.php;3. ThinkPHP/…

解密:LL与LR解析 2(译,完结)

由于GFW&#xff0c;我无法联系到作者&#xff0c;所以没有授权&#xff0c;瞎翻译的。原文在这里[http://blog.reverberate.org/2013/07/ll-and-lr-parsing-demystified.html]。 这是第2部分和完结。 3. 解析树的形状 到目前为止&#xff0c;我们使用的算术表达式的那棵树&…

即时配送:新零售时代的“物流新战场”

来源&#xff1a;平安证券2018年8月2日&#xff0c;星巴克和阿里巴巴达成战略合作&#xff0c;共同推出外卖业务&#xff0c;为消费者配送旗下饮料和烘焙食品。这意味着&#xff0c;以后可以在饿了么、手机淘宝等APP上点星巴克外卖了。其实&#xff0c;新零售、新业态的快速发展…

ThinkPHP入门(二)

smarty使用 smarty引入流程 1. 控制器IndexAction.class.phpfunction index()$this -> display(); (父类Action的display) 2. 父类ThinkPHP/Lib/Core/Action.class.phpfunction display()$this->view->display 3. ThinkPHP/Lib/Core/View.class.phpfunction displa…

雁栖湖会议研讨:计算机能代替程序员吗?

来源&#xff1a;科学网写不完的代码&#xff0c;熬不完的夜&#xff0c;进度总是赶不上变化。程序开发是一项既费时费力&#xff0c;又容易出错的工作。但当前持续涌现的软件工程大数据以及快速发展的人工智能技术&#xff0c;正使得软件自动化成为可能。通过程序合成、代码补…

在 Mac OS X Lion 下修改 Hosts 的四种方法

一名刚刚使用 Mac OS X Lion 系统的朋友问我怎么该系统下修改 Hosts 文件&#xff0c;说网上搜了很多办法都不管用&#xff0c;只要编辑 Hosts 文件就出现”你不是文件 hosts 的所有者&#xff0c;因此没有权限写到该文件”的提示&#xff0c;要解决这个权限问题又比较麻烦&…

Django环境配置

Django安装 #安装最新版本的Django $ pip install django #或者指定安装版本 pip install -v django1.7.1 项目创建 $ django-admin startproject my_blog建立Django app $ python manage.py startapp article运行程序 $ python manage.py runserver pip安装python模…

CCAI2018演讲实录 | 蒲慕明:脑科学与类脑机器学习

来源&#xff1a;人工智能前沿讲习班摘要&#xff1a;7月28-29日&#xff0c;由中国人工智能学会和深圳市罗湖区人民政府共同主办&#xff0c;马上科普承办的“2018 中国人工智能大会&#xff08;CCAI 2018&#xff09;”完美收官。大会第二天下午&#xff0c;中科院神经科学所…

Django搭建简易博客

Django简易博客&#xff0c;主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markdown与代码高亮 归档&#xff0c;AboutME和标签分类 搜索与ReadMore RSS与分页 需要添加的安装包 pip i…