'int'がクラスとして定義されているかどうかを知りたいのですが、ヘッダーファイルのどこかにあるように、それらはintという名前のクラスです。
class int
{
}
そして、変数を宣言すると、クラスintのインスタンスが作成されますか?'int'がクラスの場合、どのファイルに保存されますか?
'int'がクラスとして定義されているかどうかを知りたいのですが、ヘッダーファイルのどこかにあるように、それらはintという名前のクラスです。
class int
{
}
そして、変数を宣言すると、クラスintのインスタンスが作成されますか?'int'がクラスの場合、どのファイルに保存されますか?
いいえ; 「クラスタイプ」のタイプでint
はありません。いわゆる「スカラー」型です。
特定のオブジェクト型T
がスカラー、配列、共用体、またはクラス型のいずれであるかをより一般的に判断するには、を#include <type_traits>
使用できます。std::is_scalar<T>::value
is_array
is_union
is_class
(さらに、すべての型がオブジェクト型であるとは限らないことに注意してください。参照型と関数型もあります。std::is_object
andis_function
とを使用しis_reference
て、最初にその区別を行うことができます。)
int
クラスではなく、ネイティブ型です。
int を宣言する場合:
int x;
のインスタンスを作成しますint
。
この点で、C++ は他の多くの言語とは異なります。たとえば Java や Ruby のように、「すべてがオブジェクト」です。これは通常、すべてが 1 つのルート クラスから派生しているか、少なくともそのように見えることを意味します。
たとえば、すべてが最終的に から派生している Ruby を考えてみましょうObject
。 Object
は、本格的なクラスとして実装されます。同様のメソッドと、to_s
それらのメソッドを実装するコードがあります。
C++ はそうではありません。C++ には、 などint
、何からも派生していない非常に基本的な型があります。これらの型の背後にコードはなく、メソッドもありません。次のようなことはできません。
int x = 42;
string s = x.to_s();
、またはどのメソッドにもメソッドto_s()
がないためです。int
あなたはまた尋ねました、
「int」がクラスの場合、どのファイルに格納されていますか??
int
どのファイルにも「保存」されません。an の意味と定義はint
、コンパイラ自体に組み込まれています。int
がどのように定義されているかを確認するためにマシン上で開くことができるファイルはありません。次のようなことをすると:
int x = 42;
x += 77;
...コンパイラは、77 を 42 に加算する方法を知るためにヘッダー ファイルを調べる必要はありませんint
。ほとんどアプリオリな知識のように、それは「ただそこにある」だけです。
コンパイラはどのようにすでに知っていますか? コンパイラーを書いた人 (おそらく C または C++ を使用) がその知識をコーディングしたためです。彼らは、準拠コンパイラがどのように動作するべきかを正確に説明する C++ 標準と呼ばれるドキュメントに従いました。
いいえ、int
次で定義されているように、基本型です。
2) 符号付き整数型には、「<code>signed char」、「<code>short int」、「<code>int」、「<code>long int」、「long long int」の 5 種類があります。このリストでは、各タイプは、リスト内の前のタイプと少なくとも同じ量のストレージを提供します。プレーンな int は、実行環境のアーキテクチャによって提案される自然なサイズを持ちます); その他の符号付き整数型は、特別なニーズを満たすために提供されています。
いいえ、int
ビルトインタイプです。クラスではありません。コンパイラには、 を処理する方法に関する知識が組み込まれていint
ます。