C++ では、変数の型をどのように見つけますか?
10 に答える
typeid 演算子を使用できます。
#include <typeinfo>
...
cout << typeid(variable).name() << endl;
変数がある場合
int k;
あなたはを使用してそのタイプを取得することができます
cout << typeid(k).name() << endl;
SOに関する次のスレッドを参照してください。同様の質問
C++ と Javascript の主な違いは、C++ は静的型付け言語であり、JavaScript は動的であることです。
動的型付き言語では、変数は何でも含むことができ、その型は保持する値によって瞬間的に与えられます。静的型付き言語では、変数の型は宣言されており、変更できません。
動的ディスパッチとオブジェクト合成とサブタイピング (継承と仮想関数)、および静的ディスパッチとスーパータイピング (テンプレート CRTP による) が存在する可能性がありますが、いずれの場合も、変数の型はコンパイラーに認識されている必要があります。
それが何であるか、またはその可能性がわからない場合は、言語に動的な型システムがあるため、何かを設計したためです。
その場合は、使用している言語にとって自然ではない土地に入ることになるため、デザインを再考する必要があります (キャタピラーで高速道路に行く、または車で水の中を行くようなものです)。
通常、C++ で変数の型を見つけたいというのは間違った質問です。これは、C や Pascal などの手続き型言語から受け継いだものである傾向があります。
型に応じて異なる動作をコーディングしたい場合は、関数のオーバーロードやオブジェクトの継承などについて学習してみてください。これは、C++ の初日にすぐに理解できるものではありませんが、続けてください。
#include <typeinfo>
...
string s = typeid(YourClass).name()