8

変数と定数はデータ型のオブジェクトだと言えますか?

これについての適切な説明は何だろうと思います

int a;

float f;

ここで、 は 型のオブジェクトであり、はa型のオブジェクトであると言えますか?intffloat

4

4 に答える 4

12

はい

パラグラフ §1.8 によると、aとは両方ともb、対応する型のオブジェクトです。

1 オブジェクトはストレージの領域です。[注: オブジェクトのようにストレージを占有するかどうかに関係なく、関数はオブジェクトではありません。—終わりの注] オブジェクトは、必要に応じて、定義 (3.1)、new-expression (5.3.4)、または実装 (12.2) によって作成されます。オブジェクトのプロパティは、オブジェクトの作成時に決定されます。オブジェクトには名前を付けることができます (条項 3)。オブジェクトには、その寿命 (3.8) に影響を与える保存期間 (3.7) があります。オブジェクトには型 (3.9) があります。 オブジェクト タイプという用語は、オブジェクトが作成されるタイプを指します

[イントロ.オブジェクト]

これらの変数は、上記の定義に適合します。

于 2013-04-27T10:58:31.327 に答える
6

aとは、それぞれ typeと typefのオブジェクトです。はい、それは@Patashuの言うことと矛盾します。それは、「オブジェクト」の異なる定義を使用しているためです。intfloat

@Patashu は、オブジェクト指向プログラミングの定義を使用します。オブジェクトは、メソッドなどを含むものです。それで問題ありません。

ただし、C++ はマルチパラダイム言語であり、複数のプログラミング モデルをサポートしています。C++ 言語の定義では、"オブジェクト" という言葉を、コンパイラ作成者が使用するより広い意味で使用しています。オブジェクトとは、そのストレージに対して実行できるさまざまな操作を含むストレージの領域です。操作は、オブジェクトのタイプによって定義されます。タイプ のオブジェクトに適用できる明確に定義された操作のセットがあるintため、あなたがあなたを扱っていることがわかっている場合int、コンパイラーはそれで何ができるか、そして暗黙のうちに、あなたが何ができるかを知っていますそれとは関係ありません。

于 2013-04-27T10:58:24.383 に答える
1

はい。データ オブジェクトは、値または値のグループを含む単なるストレージ領域です。との両方がこの定義int afloat f同意します。それらとオブジェクト指向言語の「従来の」オブジェクトとの違いを確認したい場合は、データ型の概念を示す必要があります。これは、コンパイラがそのデータ オブジェクトにストレージを割り当て、アクセス時にそのメモリ値を解釈するのに役立ちます。

C++ の各データ オブジェクトには、データ型が必要です (データ オブジェクトとデータ型の識別子は、変数/定数宣言で確立されます)。データ型の分類では、それが見られint a;Object a;「まったく同じ」ではありません。

intおよびfloatは、言語によって提供されるという意味で、基本的なデータ型です。このObject例の型はderived、基本型から作成されているため、型になります。

データ型は、重複することが多い別のグループに分類できます。たとえば、それObjectユーザー定義型であると言えます。これは単一のデータ値を表すためintスカラー型です。

于 2013-04-27T11:19:26.860 に答える