RTTI(運行時類型識別)問題

使用dynamic_cast就必須在編譯器中啓動RTTI,即“運行時期類型識別”。默認情況下編譯器是不啓動RTTI的。凡是程序中用到了RTTI(比如typeid)都要在編譯器中打開RTTI,這樣才能正確編譯。

 

VC6下啓動RTTI

Project->settings->c/c++->category->c++ language,Enable Run-Time Type Infomation(RTTI)選中,或者直接使用/GR編譯選項.

 

VS.net2003下啓動RTTI

項目->項目屬性->C/C++->語言,將“啓用運行時類型信息” 選擇爲“是”。

 

 

 

RTTI(運行時類型識別)問題

如:#include<iostream>

using namespace std;

int main()

{

      int int_num=1;

double dou_num=1.1;

    cout<<int_num<<" is "<<typeid(int_num).name()<<endl;

       cout<<dou_num<<" is "<<typeid(dou_num).name()<<endl;

    return 0;

}

 
發佈了28 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章