2023年3月20日 星期一

【C++】C++取得變數類別與類別名稱(編輯中)

C++ 在設計時有時會需要變數類別,或者類別名稱,這邊整理並實際測試幾個方法。

 

typeid

typeid 是一種運算子,用來查看變數是屬於何種類別、型態,或是結構,基本的使用範例可以參考下述 C++ code:

#include <iostream>
class NormalHunter
{
public:
 void introduce()
 {
  std::cout << "This is normal hunter." << std::endl;
 }
}; 

int main(int argc, char* argv[])
{
 NormalHunter normal_hunter;
 int tmp_integer = 10;
 int* tmp_pointer = new int(12);

 normal_hunter.introduce();

 std::cout << "Typename of normal_hunter: " << typeid(normal_hunter).name() << std::endl;
 std::cout << "Typename of tmp_integer: " << typeid(tmp_integer).name() << std::endl;
 std::cout << "Typename of tmp_pointer: " << typeid(tmp_pointer).name() << std::endl;

 system("pause");
}

透過 method name() 可以得到 char array,其顯示結果應該如下:

  This is normal hunter.
  Typename of normal_hunter: class NormalHunter
  Typename of tmp_integer: int
  Typename of tmp_pointer: int *

 

decltype

 

沒有留言:

張貼留言

熱門文章