您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java和C ++在对象创建方面的主要区别是什么?

Java和C ++在对象创建方面的主要区别是什么?

除了其他出色的答案外,还有一件非常重要的事情,并且通常被忽略/遗忘或被误解(这解释了为什么我在下面详细介绍该过程):

C ++和Java之间的区别是:

每种语言的“错误”都不同:

从概念上讲,构造函数的工作是使对象存在(这绝非普通的壮举)。在任何构造函数中,整个对象可能仅是部分形成的–您只能知道基类对象已被初始化,但是您无法知道从您那里继承了哪些类。但是,动态绑定的方法调用到达继承层次结构的“向前”或“向外”。它在派生类中调用方法。如果在构造函数中执行此操作,则调用一个方法,该方法可能会操纵尚未初始化的成员,这无疑是灾难的秘诀。

布鲁斯·埃克尔(Bruce Eckel),http://www.codeguru.com/java/tij/tij0082.shtml

在基类构造过程中,虚拟函数永远不会进入派生类。而是,该对象的行为就像是基本类型一样。非正式地说,在基类构建期间,虚拟函数不是。

斯科特·迈耶斯(Scott Meyers),http://www.artima.com/cppsource/nevercall.html

java 2022/1/1 18:30:34 有491人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶