面向物件程式語言,都繞不開的話題是類和物件。物件都有型別,這在原始碼級別都好理解,但如何能在執行的時候也能知道型別呢?
C++ 作為靜態編譯型語言,對執行時型別識別RTTI的支援最弱,只能看到一個簡單的名字,C++標準並沒有規定RTTI資訊的具體實現方式,交給各大編譯器自己發揮。
Java同樣作為編譯型語言,實現了完整的反射機制,不僅作為資訊獲取,還能根據這些資訊動態建立物件,修改訪問屬性等等。由於反射的支援,Java才有了Spring、MyBatis等各種功能強大的框架。
不過聽說C++23可能會引入全新的反射特性,不知道是什麼樣子的呢?你怎麼看?如果C++也有反射,你會用來做什麼呢?
最新評論