執行期型態訊息

维基百科,自由的百科全书
跳转至: 导航搜索

在程式設計中,所謂的執行期型態訊息(Runtime type information,RTTI)指的是在程式執行時保存其物件的型態訊息的行為。某些語言實作僅保留有限的型態訊息,例如繼承樹資訊,而某些實作會保留較多資訊,例如物件的屬性及方法訊息。

執行期型態訊息是一個電腦術語,用以標示一個電腦語言是否有能力在執行期保持或判別其物件或變數的型態訊息。

雖然執行期型態訊息是一個通用的電腦術語,但是通常用來稱呼C++的特質。為了讓C++的指令達到動態指派(dynamic_cast)、型態識別碼(typeid)操作與例外處理的能力,執行期型態訊息是必須的。

C++的例子[编辑]

下列是一C++的執行期型態訊息應用範例:

class base {
  virtual ~base(){}
};
 
class derived : public base {
  public:
    virtual ~derived(){}
    int compare (derived &ref);
};
 
int my_comparison_method_for_generic_sort (base &ref1, base &ref2)
{
  derived & d = dynamic_cast<derived &>(ref1); // rtti used here
  // rtti enables the process to throw a bad_cast exception
  // if the cast is not successful
  return d.compare (dynamic_cast<derived &>(ref2));
}

參閱[编辑]