第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JAVA的構(gòu)造器和C++的構(gòu)造函數(shù)有什么區(qū)別?

JAVA的構(gòu)造器和C++的構(gòu)造函數(shù)有什么區(qū)別?

揚帆大魚 2019-02-12 14:10:45
JAVA的構(gòu)造器和C++的構(gòu)造函數(shù)有什么區(qū)別?
查看完整描述

2 回答

?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗 獲得超7個贊

語法上不一樣外 ,編程思想上,作用都是一樣的,都是創(chuàng)建一個實例,,
還有就是c++有一個析構(gòu)函數(shù),與構(gòu)造函數(shù)想對應(yīng),java則沒有,
在delete這個實例的時候,自動調(diào)用這個函數(shù),進(jìn)行最后的操作,例如刪除一些堆內(nèi)存,釋放一下,線程鎖,等一些沒用的資源,java沒有析構(gòu)方法

查看完整回答
反對 回復(fù) 2019-03-25
?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗 獲得超10個贊

Java和C++在構(gòu)造函數(shù)中調(diào)用虛函數(shù)的區(qū)別
首先可以認(rèn)為,Java所有instance函數(shù)都是虛函數(shù)。
C++類構(gòu)造函數(shù)中調(diào)用虛函數(shù),并不能有多態(tài)效果。
這樣設(shè)計的理由是:
在基類的構(gòu)造函數(shù)中,派生類的成員尚未初始化,而派生類的虛函數(shù)定義可以使用派生類的成員,C++強(qiáng)制必須先初始化對象然后才能使用【這是C++設(shè)計new和構(gòu)造函數(shù)的初衷】,所以不可以調(diào)用派生類的虛函數(shù)定義。
C++虛函數(shù)的實現(xiàn)機(jī)制也可以解釋這一現(xiàn)象:
對象的虛函數(shù)表指針在調(diào)用構(gòu)造函數(shù)前更新,指向該類的虛函數(shù)表。所以當(dāng)調(diào)用基類的構(gòu)造函數(shù)時,對象的虛函數(shù)表指針指向該基類的虛函數(shù)表,而不是指向派生類的虛函數(shù)表,所以虛函數(shù)調(diào)用沒有多態(tài)效果。

但是
Java類的構(gòu)造函數(shù)中調(diào)用虛函數(shù),依然有多態(tài)效果。
我是在看《The Java Programming Language, fourth edition》5.5 Inheriting Nested Types 這一節(jié)時看到了在Field initializer中調(diào)用【虛】函數(shù),仍然有多態(tài)的效果,大吃一驚,經(jīng)驗證屬實。

《Thinking in Java, fourth edition》 Behavior of polymorphic methods inside constructors 這一節(jié)對此進(jìn)行了評論:
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.

總之,這是一把雙刃劍,有利有弊,且弊大于利,要小心使用?!禩he Java Programming Language, fourth edition》5.5 Inheriting Nested Types 這一節(jié)舉的例子可以使用兩步初始化的方法解決,也可以使用延遲創(chuàng)建的方法解決,延遲創(chuàng)建是更好的辦法。

C++ 的不懂..幫你找了一下




查看完整回答
反對 回復(fù) 2019-03-25
  • 2 回答
  • 0 關(guān)注
  • 1024 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號