剛剛,我的幾個(gè)對(duì)象吵起來了···















































面向?qū)ο缶幊陶Z言,都繞不開的話題是類和對(duì)象。對(duì)象都有類型,這在源代碼級(jí)別都好理解,但如何能在運(yùn)行的時(shí)候也能知道類型呢?
C++ 作為靜態(tài)編譯型語言,對(duì)運(yùn)行時(shí)類型識(shí)別RTTI的支持最弱,只能看到一個(gè)簡(jiǎn)單的名字,C++標(biāo)準(zhǔn)并沒有規(guī)定RTTI信息的具體實(shí)現(xiàn)方式,交給各大編譯器自己發(fā)揮。
Java同樣作為編譯型語言,實(shí)現(xiàn)了完整的反射機(jī)制,不僅作為信息獲取,還能根據(jù)這些信息動(dòng)態(tài)創(chuàng)建對(duì)象,修改訪問屬性等等。由于反射的支持,Java才有了Spring、MyBatis等各種功能強(qiáng)大的框架。
Python作為解釋執(zhí)行的腳本語言,其抽象的層次更高,類型信息更加豐富,動(dòng)態(tài)創(chuàng)建、甚至新增、刪除屬性和方法都不在話下。
不過聽說C++23可能會(huì)引入全新的反射特性,不知道是什么樣子的呢?你怎么看?如果C++也有反射,你會(huì)用來做什么呢?
評(píng)論
圖片
表情
