剛剛,我的幾個(gè)對(duì)象吵起來(lái)了···
點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號(hào)
重磅干貨,第一時(shí)間送達(dá)
















































面向?qū)ο缶幊陶Z(yǔ)言,都繞不開(kāi)的話題是類(lèi)和對(duì)象。對(duì)象都有類(lèi)型,這在源代碼級(jí)別都好理解,但如何能在運(yùn)行的時(shí)候也能知道類(lèi)型呢?
C++ 作為靜態(tài)編譯型語(yǔ)言,對(duì)運(yùn)行時(shí)類(lèi)型識(shí)別RTTI的支持最弱,只能看到一個(gè)簡(jiǎn)單的名字,C++標(biāo)準(zhǔn)并沒(méi)有規(guī)定RTTI信息的具體實(shí)現(xiàn)方式,交給各大編譯器自己發(fā)揮。
Java同樣作為編譯型語(yǔ)言,實(shí)現(xiàn)了完整的反射機(jī)制,不僅作為信息獲取,還能根據(jù)這些信息動(dòng)態(tài)創(chuàng)建對(duì)象,修改訪問(wèn)屬性等等。由于反射的支持,Java才有了Spring、MyBatis等各種功能強(qiáng)大的框架。
Python作為解釋執(zhí)行的腳本語(yǔ)言,其抽象的層次更高,類(lèi)型信息更加豐富,動(dòng)態(tài)創(chuàng)建、甚至新增、刪除屬性和方法都不在話下。
不過(guò)聽(tīng)說(shuō)C++23可能會(huì)引入全新的反射特性,不知道是什么樣子的呢?你怎么看?如果C++也有反射,你會(huì)用來(lái)做什么呢?
推薦閱讀
國(guó)產(chǎn)小眾瀏覽器因屏蔽視頻廣告,被索賠100萬(wàn)(后續(xù))
年輕人“不講武德”:因看黃片上癮,把網(wǎng)站和786名女主播起訴了
關(guān)于程序員大白
程序員大白是一群哈工大,東北大學(xué),西湖大學(xué)和上海交通大學(xué)的碩士博士運(yùn)營(yíng)維護(hù)的號(hào),大家樂(lè)于分享高質(zhì)量文章,喜歡總結(jié)知識(shí),歡迎關(guān)注[程序員大白],大家一起學(xué)習(xí)進(jìn)步!
