変数と定数はデータ型のオブジェクトだと言えますか?
これについての適切な説明は何だろうと思います
int a;
float f;
ここで、 は 型のオブジェクトであり、はa
型のオブジェクトであると言えますか?int
f
float
パラグラフ §1.8 によると、a
とは両方ともb
、対応する型のオブジェクトです。
1 オブジェクトはストレージの領域です。[注: オブジェクトのようにストレージを占有するかどうかに関係なく、関数はオブジェクトではありません。—終わりの注] オブジェクトは、必要に応じて、定義 (3.1)、new-expression (5.3.4)、または実装 (12.2) によって作成されます。オブジェクトのプロパティは、オブジェクトの作成時に決定されます。オブジェクトには名前を付けることができます (条項 3)。オブジェクトには、その寿命 (3.8) に影響を与える保存期間 (3.7) があります。オブジェクトには型 (3.9) があります。 オブジェクト タイプという用語は、オブジェクトが作成されるタイプを指します。
[イントロ.オブジェクト]
これらの変数は、上記の定義に適合します。
a
とは、それぞれ typeと typef
のオブジェクトです。はい、それは@Patashuの言うことと矛盾します。それは、「オブジェクト」の異なる定義を使用しているためです。int
float
@Patashu は、オブジェクト指向プログラミングの定義を使用します。オブジェクトは、メソッドなどを含むものです。それで問題ありません。
ただし、C++ はマルチパラダイム言語であり、複数のプログラミング モデルをサポートしています。C++ 言語の定義では、"オブジェクト" という言葉を、コンパイラ作成者が使用するより広い意味で使用しています。オブジェクトとは、そのストレージに対して実行できるさまざまな操作を含むストレージの領域です。操作は、オブジェクトのタイプによって定義されます。タイプ のオブジェクトに適用できる明確に定義された操作のセットがあるint
ため、あなたがあなたを扱っていることがわかっている場合int
、コンパイラーはそれで何ができるか、そして暗黙のうちに、あなたが何ができるかを知っていますそれとは関係ありません。
はい。データ オブジェクトは、値または値のグループを含む単なるストレージ領域です。との両方がこの定義int a
にfloat f
同意します。それらとオブジェクト指向言語の「従来の」オブジェクトとの違いを確認したい場合は、データ型の概念を示す必要があります。これは、コンパイラがそのデータ オブジェクトにストレージを割り当て、アクセス時にそのメモリ値を解釈するのに役立ちます。
C++ の各データ オブジェクトには、データ型が必要です (データ オブジェクトとデータ型の識別子は、変数/定数宣言で確立されます)。データ型の分類では、それが見られint a;
、Object a;
「まったく同じ」ではありません。
int
およびfloat
は、言語によって提供されるという意味で、基本的なデータ型です。このObject
例の型はderived
、基本型から作成されているため、型になります。
データ型は、重複することが多い別のグループに分類できます。たとえば、それObject
はユーザー定義型であると言えます。これは単一のデータ値を表すためint
、スカラー型です。