相关推荐
-
C++中多态的类型及虚函数
多态的类型 重载多态 函数重载 运算符重载 包含多态(类族中定义于不同类中的同名函数的多态行为)——虚函数实现 参数多态:与类模板相关联,在使用时必须赋予实际的类型才可以实例化 强制多态:是指将一个变量的类型加以变化,以符合函数或操作的要求。如浮点数和整数相加时会将整数变为浮点数再相加。 ...
-
浅谈多态性与虚函数
虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
-
虚函数和多态性
虚函数和多态性一, 知识点总结1, 多态性是指一个名字,多种语义;或界面相同多种实现2, 重载函数是多态性的一种简单形式3, 虚函数允许函数调用与函数题的联系在运行时才进行,称为动态联编。4, 冠以关键字virtual的成员函数称为虚函数5, 实现运行时多态的关键首先是要说明虚函数,另外,必须用基类指针调用派生类的不同实现版本。类指针的关系1, 直接用基类指...
-
多态与虚函数
在类成员函数前面加一个virtual就表示该函数是虚函数,虚函数可以用来实现多态。虚函数会存在虚函数表中,根据指向不同,从而调用基类或子类的函数。例如: class Animal { public: virtual void move() { std::cout << "animal move" << std::endl; } }; class Fish : public Animal { public: void move() {...
-
C++多态(一)对象类型与虚函数
对象类型与虚函数的内部结构
-
浅谈虚函数、多态
目录 一、多态 什么是多态 什么情况下发生多态的调用 二、虚函数 什么是虚函数 成为虚函数的条件 虚函数的作用 如果虚函数是非常有效的,我们是否可以把每个函数都声明为虚函数 纯虚函数 为什么要有纯虚函数 什么情况下使用纯虚函数 一、多态 什么是多态 同一接口,不同形态 静多态:函数重载和模板(包括函数模板和类模板) 静态的多态指的是编译时...
-
虚函数如何实现多态
虚函数如何实现多态 虚函数联系到多态,多态联系到继承。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 下面来看一段简单的代码
-
C++中对纯虚函数和多态的理解
抽象类是一种特殊的类,它是为了抽象和设计的目的为建立的,它处于继承层次结构的较上层。 ⑴抽象类的定义: 称带有纯虚函数的类为抽象类。 ⑵抽象类的作用: 抽象类的主要作用是将有关的操作作为结果接口组织在一个继承层次结构中,由它来为派生类提供一个公共的根,派生类将具体实现在其基类中作为接口的操作。所以派生类实际上
-
C++虚函数的定义与意义
我们知道,在同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是“重复定义”。但是在类的继承层次结构中,在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数。例如在例12.1(具体代码请查看:C++多态性的一个典型例子)程序中,在Circle类中定义了 area函数,在Circle类的派生类Cylinder中也定义了一个area函数。这两个函数不仅名字相同,而
-
虚函数和纯虚函数的区别
虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数! 纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚函数 引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。 class Cman { public: virtual void Eat(){……}; void Move(); pr
-
虚函数的作用是什么?有哪些用处?何处体现多态?
虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。 下面是对C++的虚函数这玩意儿的理解。 一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始) 简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言
-
(纯)虚函数和多态
#include <iostream> using namespace std; /**************************************** C++ 虚函数和多态 1. 虚函数是在基类中使用virtual声明的函数。当在编写类函数代码的时候,不确定调用 ...
-
多态性和虚函数
多态 相同的方法或者函数调用为不同的对象所接受时可能导致的不同行为,这种现象称为类的多态性。具体的说,它主要表现在函数调用时,实现一种接口,多种方法,多态性是面向对象程序设计的另一个重要特征。C++支持两种多态性,编译时多态性和运行时的多态性。 编译时的多态性指的是属于某个类的不同对象,或不同环境下的同一对象,调用了名称相同的成员函数,所完成的功能却不相同,这是一种静态多态性,因为编译器在对源...
-
继承和多态,主要为虚函数,虚函数是多态的一种
#include/////////////////////////////////继承和多态 using namespace std; class A{ public: q(); virtual w(); //virtual是虚函数的标志这里我们用虚函数来实现多态| };
-
虚函数和多态
一、虚函数&多态基础 虚函数是加了virtual关键词之后的类成员函数。 虚函数重写:当在子类中定义了一个与父类完全相同的虚函数时,则称子类的这个函数重写(也叫覆盖)了父类的这个虚函数。 上图中,类Person和类Student中的虚函数Buy一样,且Student继承了Person,所以,Student中的Buy函数重写(覆盖)了Person中的Buy。 至于多态,其形成的条
-
C++学习之深入理解虚函数--虚函数表解析
C++学习之深入理解虚函数--虚函数表解析 标签: C++C++虚函数虚函数表解析虚函数表 2014-03-27 11:05 11838人阅读 评论(6) 收藏 举报 分类: C++语言(79) 目录(?)[+] 转自:http://blog.csdn.net/haoel/article/details/1948051/
-
C++虚函数和多态学习笔记
1、什么是虚函数和多态虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。多态指同一个方法根据其所属的不同对象可以有不同的行为(根据自己理解,不知这么说是否严谨)。举个例子说明虚函数、多态、早绑定和晚绑定:李氏两...
-
关于虚函数和多态(很好的解释)
C++:派生类中重定义基类的成员函数与虚函数区别在哪里?
-
C++虚函数多态原理-最直白的讲解
C++的主要特点是抽象,继承,封装和多态。我们先理解抽象是什么?在这之前,首先我问你C++是什么,是用来干什么的? 一切的语言都是用来描述现实世界的 ,C++也是.C++的任何特性都是为了去描述这个世界,并为其解决提供方法。但是C++还是并不能完全去描述这个世界,因为现实世界是无法完全认知的,只能不断去认知的,扯远了,感到到了哲学这段。抽象?例如现实世界的人类,书,树,桌子,椅子等名词都是一种对...
-
C++学习之多态篇(纯虚函数和接口类)
1.纯虚函数形式 2.纯虚函数内存结构 分析:Shape类中有一个虚函数和纯虚函数,所以它肯定有一个虚函数表和一个虚函数表指针,在虚函数表中如果是一个普通的虚函数,那么这个虚函数的函数指针就是一个有意义的值,比如0x3355,如果是一个纯虚函数,那么这个值就是0。 3.抽象类 纯虚函数肯定是某个类的成员函数,包含纯虚函数的类就叫做抽象类。抽象类的特点: (1)因为纯虚函数无法
66 楼 llade 2009-03-23 00:50
做web应用本来就不是java的强项,php居多。但在企业应用领域,java将是一家独大,其地位是不可能被动摇的。一己之见。
通常的互联网上的web应用不涉及流程和报表,随意性较强,结构松散,BBS和内容展现见长,外加网站的垂直聚合和搜索,这些PHP,ASP之类更擅长。企业应用则流程报表居多,复杂的数据存储和统计,多用户协作对过程的严格控制,用PHP这样的纯脚本语言来开发,无法应付其复杂度和运行效率。JAVA和.NET这类面向对象,多线程,自动垃圾收集,丰富的API的平台则更容易处理企业这种多用户复杂交互过程。ROR了解不多,不方便评论,看似则兼具脚本语言和面向对象语言的之长,加之社区活跃,丰富其“第三方”工具,前途未可限量,个人以为其弱点视乎不适合大中型项目的团队分工开发(robbin的说法),模块开发是团队开发的基本特征,ROR太脚本化或者说有点随意,模块之间的接口不事先约定则很不清晰,可能到后期这类随意的脚本会造成相对的整合困难,不像JAVA对象接口清晰,引入了依赖注入为主的开发方式那么容易管理,以及Java Aop框架下容易整合,不过ROR发展很快,开发方式也在变化,其VM也在完善,难保不会克服其弱点。
65 楼 gurudk 2009-03-23 00:03
64 楼 colorado 2009-03-22 15:51
别的不说,为自己的胡猜猜中了高兴,我想……我要是摸彩票的话该多好:)
不管别的,反正以后 Eclipse 和 NetBeans 可能就是一家人了,呵呵。
63 楼 joeyhacker 2009-03-22 09:20
62 楼 rrsy23 2009-03-22 01:38
死前谁知!
死后都知!
谁是安然!
时间是哦!
一切皆安然!
30年前的世界50强还有几家!
61 楼 rrsy23 2009-03-22 01:34
1到3是前进
但是不要忘记11比3大
典型的中国GDP
中国gdp年年涨10%
美国涨一点点
可是也没有看超过美国
一切技术都是起步,发展,成熟,高峰,下降,遗忘,淡化
java消失了会有一个类似java的东西取代
只不过把java的好处弄来,增加好处 换个名称
如果你搞C++是牛人 害怕C++死掉 java产生 发展
同样JAVA死掉又何方
无赖的我们,不如去睡觉!
NETSCAPE做浏览器你们猜到IE取代他吗?
ie取代了他,你猜到GOOGLE做浏览器吗?
谁做不都没有脱离浏览器这个 html css js w3c东东
一切的一切,只是圈在加一个圈
加一层在加一层
机器语言 加一层 汇编 加一层 C语言 加一层C++ 加一层 java
加一层servlet 加一层jsp 加一层 tomcat 加一层 webservice
什么才是:核
思考思考在思考
60 楼 rrsy23 2009-03-22 01:25
当初 AJAX流行,上面的某位大家说 AJAX取代j2ee,当初我哭了,不是怕J2EE消失,不可能,而是难过中国的大家!
今天,不知道大家知道不知道IBM在做什么,什么web什么企业应用,有什么不同,未来也许企业应用与web整合,IBM是soa与web2.0的整合推动者,看看IBM很多产品界面也不是传统的了.
未来是,sun搞jsp欺负微软ASP
微软搞asp.net欺负jsp
sun搞jsf欺负ASP.NET
微软搞ajax.net欺负jsf
sun搞javafx欺负微软ajax.net
微软搞sliverlight欺负javafx
adobe笑了,你们不知道我收购macomedia为什么吗?
傻逼,我来了FLEX
未来是什么!
融合的世界!
59 楼 fxbird 2009-03-21 20:52
58 楼 zy_pub 2009-03-21 18:46
虽然JAVA已经很成熟了,但是...还是会有发展前途的
J2EE的应用,远不及前几年的光景,LAMP会是它强有力的对手
希望IBM能重振J2EE的雄风....
57 楼 ajf8 2009-03-21 14:10
javaeye帖子 http://www.javaeye.com/topic/257804
个人主页 http://hi.baidu.com/ajf8
56 楼 calvinlyc 2009-03-20 19:16
llade 写道liuqiang 写道SSH这种东西的前景我非常不看好!以后企业开发中逐步会被IBM之类的一体化解决方案代替,在web领域会被ruby on rails 代替!所以java未来会朝着大型的JAVAEE(诸如EJB)和系统服务(诸如XMPP JXTA LUCENCE)的方向发展SSH有个S被淘汰是有可能的,但不会是今后3-5年之内,H近年动作迟缓,但淘汰尚需时日,ORM一日不死,都还是有其一份,不知道后期会不会爆发力惊人,借助JAVA的丰富的API和开源工具咸鱼翻身,况且现在还不咸,关系数据库被淘汰了H也就被淘汰了。IBM的一体化解决方案的成本。。。不太适合中小企啊。JAVA会朝着平台化和系统服务方面发展倒是有这样的趋势,大型的JEE似乎活得不好,不是开放开源的话,在JCP委员会的带领下会更官僚化发展,可能夹杂着C/C++会好些。ROR很火,JAVA在WEB开发上没有杀手级创新的话会逐渐被追上,WEB开发的零散性和灵活性JAVA是不如ROR,总觉得是卡在SERVLET标准上了,JAVA WEB 平台总是离不开servlet标准,servlet鸡肋,当然,毕竟还有平台化、动态语言支持这一后着。分析的不错!SSH中的Struts2是个鸡肋,我觉得springMVC+Spring+IBt**S+Flex是个出路,在以后的发展过程是会是:1 中小型的web开发用ROR成为主流2 大型的web应用将是SSH和rails火拼,当然未来很长一段时间还是SSH占主流3 中小型的企业开发用Spring+flex,当然也会受到ROR和Jboss BEA IBM Oracle的威胁4 大型的分布式应用市场将是Jboss BEA IBM Oracle进行火拼?5 网络 桌面 服务器方面的java应用将会升温?BTW:鄙人最近准备做个TCP/IP应用,和c/c++,比较来比较去,还是觉得用java划算,尽管鄙人喜欢C
不知道你用过wicket没,我是觉的非常强大,而且简介,而且非常合适为自己的程序编写unit test。简单明了,套用swing的概念在web上,对于mvc的概念实现的非常明确
55 楼 liuwei2630 2009-03-20 18:56
Exchange,SharePoint,Dynamics crm...
你们也许说这些东西很垃圾,,注意,,我说的是中小企业。。
微软的sql server2008性价比已经很高了,net3.5已经进步很大了,,不要想着sql2000。。。
仔细用过微软的企业级产品再说微软的企业级平台把。。。。
54 楼 spacefly 2009-03-20 17:16
53 楼 llade 2009-03-20 17:12
如果没有IBM、Oracle这几个公司背后支持,光靠开源社区,就能进入到企业市场?开什么玩笑,充其量也就是PHP第二而已。 J2EE未来也许会分成两个分支,一个是企业级应用,也就是IBM所把持的部分,JAVA只是那个挟天子以令诸侯的汉献帝,里面的东西笨重复杂,明显的是不带我们玩的,另一个是中小企业,JAVA只会在框架部分有所作为,业务代码会脚本化,表现层也会有优秀的组件库,整体会越来越轻,越来越快,并且也越来越不受约束,JAVA会逐步走向台后,非JAVA的语言将在项目开发中占大头,那时也许就会有新的革命产生。 Web开发用JAVA也许是个错误,从开始的时候就错了。
大企业市场总是IBM和Oracle这些大牌的天下。因为大中型企业没有自己的IT技术支援,IBM和Oracle售后服务的是其最看重,有什么事情打个服务电话,就会有专家上门服务。免去其硬件和基础软件维护这一麻烦。更重要的IBM和Oracle金漆招牌,你可以拍拍胸脯,我的XXX系统是基于IBM的XXX平台。你如果某个系统是基于MYSQL和TOMCAT,APACHE之类的。你都不好意思露脸,换句话,大中企业也在利用IBM和Oracle的名气,间接而已,都是一起打高尔夫的利益共同体。这样一个市场,品牌和服务并举是莫大的成功,开源软件根本没有直接的服务支持公司,开源软件的名气仅限于业内人士,服务仅仅是依靠使用他们的中小软件开发公司。
大中型企业本身在某个领域或地区具有自己的垄断优势,他可能不在乎这点IT成本。但在计算机网络不断发展的今天,技术门槛不断降低,加之金融危机本身的影响,IT技术的普及,新的竞争者夹着更低成本IT技术更加快的涌现,本身会加速这种昂贵软硬件服务的市场的瓦解。其实已经越来越多这样的中小软件公司挤入原本就被IBM和Oracle的垄断的市场,软件即是服务,整合不同的软件成本越来越容易了,市场总有一天会发现不必采用昂贵的系统即可获得相同的功能的产品。
企业市场可以被忽悠打开,但不可能一直被忽悠占据。
52 楼 liuqiang 2009-03-20 15:57
如果没有IBM、Oracle这几个公司背后支持,光靠开源社区,就能进入到企业市场?开什么玩笑,充其量也就是PHP第二而已。
J2EE未来也许会分成两个分支,一个是企业级应用,也就是IBM所把持的部分,JAVA只是那个挟天子以令诸侯的汉献帝,里面的东西笨重复杂,明显的是不带我们玩的,另一个是中小企业,JAVA只会在框架部分有所作为,业务代码会脚本化,表现层也会有优秀的组件库,整体会越来越轻,越来越快,并且也越来越不受约束,JAVA会逐步走向台后,非JAVA的语言将在项目开发中占大头,那时也许就会有新的革命产生。
Web开发用JAVA也许是个错误,从开始的时候就错了。
1 Web开发用JAVA也许是个错误
2 JAVA会逐步走向台后
这2点我很赞成!
比起企业级市场的SSH,JAVA在台后将会更有作为!
51 楼 liuqiang 2009-03-20 15:52
liuqiang 写道
SSH这种东西的前景我非常不看好!以后企业开发中逐步会被IBM之类的一体化解决方案代替,在web领域会被ruby on rails 代替!所以java未来会朝着大型的JAVAEE(诸如EJB)和系统服务(诸如XMPP JXTA LUCENCE)的方向发展
SSH有个S被淘汰是有可能的,但不会是今后3-5年之内,H近年动作迟缓,但淘汰尚需时日,ORM一日不死,都还是有其一份,不知道后期会不会爆发力惊人,借助JAVA的丰富的API和开源工具咸鱼翻身,况且现在还不咸,关系数据库被淘汰了H也就被淘汰了。IBM的一体化解决方案的成本。。。不太适合中小企啊。JAVA会朝着平台化和系统服务方面发展倒是有这样的趋势,大型的JEE似乎活得不好,不是开放开源的话,在JCP委员会的带领下会更官僚化发展,可能夹杂着C/C++会好些。ROR很火,JAVA在WEB开发上没有杀手级创新的话会逐渐被追上,WEB开发的零散性和灵活性JAVA是不如ROR,总觉得是卡在SERVLET标准上了,JAVA WEB 平台总是离不开servlet标准,servlet鸡肋,当然,毕竟还有平台化、动态语言支持这一后着。
分析的不错!SSH中的Struts2是个鸡肋,我觉得springMVC+Spring+IBt**S+Flex是个出路,在以后的发展过程是会是:
1 中小型的web开发用ROR成为主流
2 大型的web应用将是SSH和rails火拼,当然未来很长一段时间还是SSH占主流
3 中小型的企业开发用Spring+flex,当然也会受到ROR和Jboss BEA IBM Oracle的威胁
4 大型的分布式应用市场将是Jboss BEA IBM Oracle进行火拼?
5 网络 桌面 服务器方面的java应用将会升温?BTW:鄙人最近准备做个TCP/IP应用,和c/c++,比较来比较去,还是觉得用java划算,尽管鄙人喜欢C
50 楼 一蓑烟雨任平生 2009-03-20 15:48
J2EE未来也许会分成两个分支,一个是企业级应用,也就是IBM所把持的部分,JAVA只是那个挟天子以令诸侯的汉献帝,里面的东西笨重复杂,明显的是不带我们玩的,另一个是中小企业,JAVA只会在框架部分有所作为,业务代码会脚本化,表现层也会有优秀的组件库,整体会越来越轻,越来越快,并且也越来越不受约束,JAVA会逐步走向台后,非JAVA的语言将在项目开发中占大头,那时也许就会有新的革命产生。
Web开发用JAVA也许是个错误,从开始的时候就错了。
49 楼 webgame 2009-03-20 15:32
引用为什么没有人提JavaFx,我认为以后界面将会以Flash、JavaFx、silverLight为主流,SWT、Swing都会衰退期。
目前JavaFx只是在UI领域表示出强大能力,还没有人进行传统的框架设计。但我相信JavaFx的函数性、声明性,与生俱来的未来语言的特性,一定会大红大紫的。
非常同意,就等javaFx出一个框架
JFXtras
48 楼 llade 2009-03-20 15:10
SSH这种东西的前景我非常不看好!以后企业开发中逐步会被IBM之类的一体化解决方案代替,在web领域会被ruby on rails 代替!所以java未来会朝着大型的JAVAEE(诸如EJB)和系统服务(诸如XMPP JXTA LUCENCE)的方向发展
SSH有个S被淘汰是有可能的,但不会是今后3-5年之内,H近年动作迟缓,但淘汰尚需时日,ORM一日不死,都还是有其一份,不知道后期会不会爆发力惊人,借助JAVA的丰富的API和开源工具咸鱼翻身,况且现在还不咸,关系数据库被淘汰了H也就被淘汰了。IBM的一体化解决方案的成本。。。不太适合中小企啊。JAVA会朝着平台化和系统服务方面发展倒是有这样的趋势,大型的JEE似乎活得不好,不是开放开源的话,在JCP委员会的带领下会更官僚化发展,可能夹杂着C/C++会好些。ROR很火,JAVA在WEB开发上没有杀手级创新的话会逐渐被追上,WEB开发的零散性和灵活性JAVA是不如ROR,总觉得是卡在SERVLET标准上了,JAVA WEB 平台总是离不开servlet标准,servlet鸡肋,当然,毕竟还有平台化、动态语言支持这一后着。
47 楼 liuqiang 2009-03-20 14:42
所以java未来会朝着大型的JAVAEE(诸如EJB)和系统服务(诸如XMPP JXTA LUCENCE)的方向发展