java函数和构造函数_JAVA的构造器和C++的构造函数有什么区别?

c8e0528e2c54542cd128dc5681a3ef5e.png

慕瓜9086354

Java和C++在构造函数中调用虚函数的区别首先可以认为,Java所有instance函数都是虚函数。C++类的构造函数中调用虚函数,并不能有多态效果。这样设计的理由是:在基类的构造函数中,派生类的成员尚未初始化,而派生类的虚函数定义可以使用派生类的成员,C++强制必须先初始化对象然后才能使用【这是C++设计new和构造函数的初衷】,所以不可以调用派生类的虚函数定义。C++虚函数的实现机制也可以解释这一现象:对象的虚函数表指针在调用构造函数前更新,指向该类的虚函数表。所以当调用基类的构造函数时,对象的虚函数表指针指向该基类的虚函数表,而不是指向派生类的虚函数表,所以虚函数调用没有多态效果。但是Java类的构造函数中调用虚函数,依然有多态效果。我是在看《The Java Programming Language, fourth edition》5.5 Inheriting Nested Types 这一节时看到了在Field initializer中调用【虚】函数,仍然有多态的效果,大吃一惊,经验证属实。《Thinking in Java, fourth edition》 Behavior of polymorphic methods inside constructors 这一节对此进行了评论:If you call a dynamically-bound method inside a constructor, the overridden definition for that method is used. However, the effect of this call can be rather unexpected because the overridden method will be called before the object is fully constructed. This can conceal some difficult-to-find bugs.总之,这是一把双刃剑,有利有弊,且弊大于利,要小心使用。《The Java Programming Language, fourth edition》5.5 Inheriting Nested Types 这一节举的例子可以使用两步初始化的方法解决,也可以使用延迟创建的方法解决,延迟创建是更好的办法。C++ 的不懂..帮你找了一下

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

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

相关文章

Jeff Dean晒Google Brain团队2017成绩单!

来源:全球人工智能谷歌大脑负责人 Jeff Dean 今天发文晒AutoML、语言理解、机器学习算法、机器学习系统等核心研究工作成绩单,全面总结谷歌大脑在2017年取得的成绩。一、自动化机器学习(AutoML)我们开发了使用强化学习和进化算法设…

mysql恢复主服务器_MySQL 5.6主从复制第二部分[恢复某一台从服务器]

MySQL 5.6主从复制第二部分[恢复某一台从服务器],本来第二部分是想测试主服务器挂掉,提升从服务器的情况,可是出了点点意外,改本来第二部分是想测试主服务器挂掉,提升从服务器的情况,可是出了点点意外&…

亮相2018CES:解读阿里云IoT筹谋全球物联网市场的一盘大棋!

来源:阿里巴巴概要:近年来国内物联网市场高歌猛进,2017年也被称为物联网真正意义上的元年。成立还不到一年的阿里云IoT,以平台、市场、标准三位一体的策略,迅速在物联网领域崭露头角、稳固地位。一年一度的CES在拉斯维…

CompletableFuture 异步编程

本文从实例出发,介绍 CompletableFuture 基本用法。不过讲的再多,不如亲自上手练习一下。所以建议各位小伙伴看完,上机练习一把,快速掌握 CompletableFuture。 全文摘要: Future VS CompletableFuture CompletableFu…

麦肯锡:物联网九大应用潜力无限 2025年经济价值高达11.1万亿美元

来源:WPR概要:物联网有可能从根本上改变人类与周围世界的互动方式。如果一切顺利的话,那么到2025年,物联网——将实体和数字世界连接起来的这项技术,其经济价值可达每年11.1万亿美元。物联网有可能从根本上…

致开发者:2018年AI技术趋势展望

来源|公众号“AI 前线”,(ID:ai-front)译者|核子可乐编辑|Emily概要:在 2018 年,开发者如何将一系列 AI 技术成果应用于当前的工作当中呢?近日,一…

CES2018:英特尔披露量子计算和神经拟态计算研究最新进展

来源:科学网概要:今年上半年,英特尔计划与顶级院校和研究机构共享Loihi测试芯片,同时将其应用于解决更加复杂的数据集和问题。1月8日,在拉斯维加斯举办的2018年国际消费电子产品展(CES)上&#…

EDA风格与Reactor模式

来源:https://www.cnblogs.com/ivaneye/p/10129896.html 本文将探讨如下几个问题: Event-Driven架构风格的约束EDA风格对架构属性的影响Reactor架构模式Reactor所解决的问题redis中的EventDriven 从观察者模式到EDA风格 GOF的23种设计模式中&#xff…

神经尘埃、脑波打字…… 2018年的脑科学要研究什么?

来源:科技日报概要:21世纪是脑科学时代。为了进一步了解大脑,监测大脑活动的研究进行得如火如荼,已在学术界和商业界掀起一股淘金热。人脑可谓人体最复杂、最神秘的器官,无数科学家殚精竭虑,也不过才揭开其…

webapp入门到实战_web前端入门到实战:前端高手在CSS 开发效率的必备片段

这篇文章会记录我们平时常用到的 CSS 片段,使用这些 CSS 可以帮助我们解决许多实际项目问题中遇到的,墙裂建议点赞收藏再看,方便日后查找清除浮动浮动给我们的代码带来的麻烦,想必不需要多说,我们会用很多方式来避免这…

FutureTask 示例

1、简单示例 2、泡茶 1、简单示例 // 创建 FutureTask FutureTask<Integer> futureTask new FutureTask<>(()-> 12); // 创建并启动线程 Thread t1 new Thread(futureTask); t1.start();// 获取计算结果(阻塞主线程&#xff0c;等待结果...) Integer result…

机器学习必知的8大神经网络架构和原理

来源&#xff1a;全球人工智能概要&#xff1a;有些任务直接编码较为复杂&#xff0c;我们不能处理所有的细微之处和简单编码&#xff0c;因此&#xff0c;机器学习很有必要。为什么需要机器学习&#xff1f;有些任务直接编码较为复杂&#xff0c;我们不能处理所有的细微之处和…

《科学》盘点2018可能被聚焦的研究领域

来源&#xff1a;科学网 概要&#xff1a;随着这些大趋势展现出来&#xff0c;《科学》杂志预测了今年可能被聚焦的关于研究和政策的特定领域。动荡的政治变革将在新的一年塑造科学的进程。美国总统唐纳德特朗普领导的政府预计将继续致力于废除基于科学的环境法规。英国离开欧盟…

谷歌大脑2017总结下篇:从医疗、机器人等6个领域开始的改变世界之旅

作者&#xff1a;camel概要&#xff1a;Jeff Dean发表了这篇博文的下篇&#xff0c;内容包括谷歌大脑在 AI 应用方面&#xff08;诸如医疗、机器人、创新、公平和包容等&#xff09;的工作。昨天谷歌大脑&#xff08;Google Brain&#xff09;负责人 Jeff Dean 在 Google Resea…

Gartner:人工智能将改变个人设备领域的游戏规则

来源&#xff1a;人工智能和大数据概要&#xff1a;目前&#xff0c;AI正在产生多种颠覆性力量&#xff0c;重塑我们与个人技术互动的方式。近日&#xff0c;Gartner公司预测&#xff0c;随着情感人工智能&#xff08;AI&#xff09;日臻成熟&#xff0c;个人设备到2022年将比您…

张小龙演讲干货:微信的未来在哪?这里有7个答案

来源&#xff1a;钱塘大数据概要&#xff1a;1月15日&#xff0c;以“to be正当时”为主题的2018微信公开课Pro版在广州举行&#xff0c;腾讯集团高级执行副总裁、微信事业群总裁张小龙出席并发表演讲。1月15日&#xff0c;以“to be正当时”为主题的2018微信公开课Pro版在广州…

敏捷软件开发—原则、模式与实践总结

思维导图&#xff1a;https://www.processon.com/view/link/60d46dfb5653bb049a469068

AWS VS 阿里云 VS 腾讯云 国内三大云服务商云主机评测报告

来源&#xff1a;CloudBest概要&#xff1a;近几年&#xff0c;随着国内公有云市场规模的不断增长&#xff0c;以阿里云、腾讯云为代表的本土云服务商&#xff0c;以及以AWS、微软Azure为代表的海外云服务商&#xff0c;成为公有云市场最大的赢家&#xff0c;市场寡头化趋势已经…

单一职责原则(SRP)

单一职责原则&#xff08;The Single Responsibility Principle&#xff0c;SRP&#xff09; 就一个类而言&#xff0c;应该仅有一个引起它变化的原因。 为何要把两个职责分离到单独的类中&#xff1f; 因为每一个职责都是变化的一个轴线&#xff08;an axis of change&…

多国相继出台政策法规:为「自动驾驶」的「创新发展」保驾护航

来源&#xff1a;腾讯研究院曹建峰 腾讯研究院法律研究中心高级研究员祝林华 腾讯研究院法律研究中心助理研究员人工智能等新技术&#xff0c;正从科幻概念逐步落地到各行各业&#xff0c;将从重塑驾驶、医疗、制造等领域开始&#xff0c;全面重构人类社会和生活。自动驾驶汽…