在我的專案中,有這樣乙個需求:在socket(tcp協議)通訊部分,需要根據不同的業務協議型別分別設定乙個不同的block時間。而此時我已經拿到了指向該協議(資料)物件的(父型別)指標。那最簡單的區分不同協議的方式就是使用c++的 typeid操作符。
typeid操作符的作用就是獲取乙個表示式的型別。返回結果是const type_info&。不同編譯器實現的type_info class各不相同。但c++標準保證它會實現乙個name()方法,該方法返回型別名字的c-style字串。
如果typeid的運算元不是類型別或者是沒有虛函式的類,則typeid指出該運算元的靜態型別。如果運算元是定義了至少乙個虛函式的類型別,則在執行時計算型別。
//c++ rtti還包括另外乙個操作符dynamic_cast。有時間的時候,將c++ rtti的知識整體梳理一下。expre_typeid_operator.cpp
//compile with: /gr /ehsc
#include #include
class
base
};class derived : public
base {};
using
namespace
std;
intmain()
獲取檔案的型別和副檔名(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...