C C C typeid獲取型別名

2021-06-19 11:29:03 字數 658 閱讀 2851

在我的專案中,有這樣乙個需求:在socket(tcp協議)通訊部分,需要根據不同的業務協議型別分別設定乙個不同的block時間。而此時我已經拿到了指向該協議(資料)物件的(父型別)指標。那最簡單的區分不同協議的方式就是使用c++的 typeid操作符。

typeid操作符的作用就是獲取乙個表示式的型別。返回結果是const type_info&。不同編譯器實現的type_info class各不相同。但c++標準保證它會實現乙個name()方法,該方法返回型別名字的c-style字串。

如果typeid的運算元不是類型別或者是沒有虛函式的類,則typeid指出該運算元的靜態型別。如果運算元是定義了至少乙個虛函式的類型別,則在執行時計算型別。

//

expre_typeid_operator.cpp

//compile with: /gr /ehsc

#include #include

class

base

};class derived : public

base {};

using

namespace

std;

intmain()

c++ rtti還包括另外乙個操作符dynamic_cast。有時間的時候,將c++ rtti的知識整體梳理一下。

獲取檔案的型別和副檔名(Java)

實驗中遇到要獲取檔案的型別或者副檔名的情況,了解了下。具體實現 string filename file.getname 獲取檔案型別filetype 不帶.string filetype filename.substring filename.indexof 1,filename.length 獲...

jdbc 獲取表名

在協作開發過程,特別是跨公司合作開發中,表的設計方和使用方完全不同。有時你需要知道表的結構,由於種種原因,一時無法得知表設計資訊。現在jdbc的resultsetmetadata物件可以幫你獲取表的資訊。resultsetmetadata是resultset介面的成員,提供了獲取表字段的方法。常見的...

獲取屬性名 PropertyNameHelper

獲取屬性名 propertynamehelper namespace ncs.infrastructure.querying return expr.tostring substring expr.tostring indexof 1 public static string resolveprop...