個人財務 C ++で強く型付けされた列挙型 - ダミー

C ++で強く型付けされた列挙型 - ダミー

ビデオ: Fun with Music and Programming by Connor Harris and Stephen Krewson 2025

ビデオ: Fun with Music and Programming by Connor Harris and Stephen Krewson 2025
Anonim

プログラミングは読みやすさを重視しています。C ++が提供する最も基本的な援助は、次の引用例のように遍在する#defineです。あなたが読むことができないプログラムを書いて維持するのは難しい(実際には不可能です)。ソースコードリストを読むことの一部は、プログラムで使用される数字が何を表しているかを理解することです。

#define PI 3. 141592653589793

この解決法は個々の値で問題ありませんが、この解決法は、C ++が提供する最も基本的な援助は、次の例のように遍在する#defineです。 #defineメカニズムは、プリプロセッサがコンパイラの前で動作するため、C / C ++の一部ではありません(厳密に言えば)。これに対応して、C ++ 2011は 定数式 を導入しました。

<! - 1 - >
constexpr long double PI = 3. 141592653589793;

constexprキーワードは、定数をC ++テントに持ち込みます。このPIには、他のC ++変数と同様に、実数型があります。 C ++はPIを使ってエラーメッセージを生成することができます。これは、3.14159を含むものよりもはるかに理にかなったエラーメッセージです。

定数式は個々の定数値では問題ありませんが、以下の例のように、

<!おそらくこれらの定数は、状態を識別するために使用されていると思われます。多分、次のように使用されています。#状態オブジェクトの配列へのインデックス、またはデータベースのどこかの値としてのインデックス
C ++は、これらの型の定義のための改良されたメカニズムを長らく持っていました - 列挙型:

列挙型STATE {DC_OR_TERRITORY、// ALABAMAを取得//、1 ALASKAを取得// ARKANSASを2取得//、そんなに…};

enumキーワードは、「列挙」と呼ばれる一連の定数を導入します。この場合、列挙にはSTATEという名前が付けられます。この列挙の各要素には、0から順に1ずつ増加する値が割り当てられます。したがって、DC_OR_TERRITORYは0、ALABAMAは1などと定義されます。次のようにassignステートメントを使用して、このインクリメンタルシーケンシングをオーバーライドできます。


- <! - 1 - >

列挙型{DC、TERRITORY = 0、ALABAMA、ALASKA、// …など…};

このバージョンのSTATEは要素DCを定義し、値0が与えられます。新しい要素TERRITORYが定義され、値0が割り当てられます。ALABAMAは前と同じように1で取り上げます。
実際には、プログラマは列挙型を使用して、次のような非常に読みやすいコードを記述できます。

double taxRate(STATE s){return taxRatesByState [s];}このアプローチの唯一の問題は、あなたが考えるかもしれない新しいタイプを作成しません。実際には、標準によると、STATEはintの単なる別の名前であり、定数ALABAMA、ALASKAなどはすべてconst型intです。

<! - 2 - > <! - 1 - >

gccコンパイラは実際には、このように宣言されたenumを、単純に別の形式のintと呼ぶよりも少し権限を与えています。実際には、enum型に基づいて関数をオーバーロードすることができます:

void fn(STATE s); void fn(int n); fn(ALASKA); // invokes fn(STATE)

2011年の標準では、プログラマはenumキーワードを使用して完全に新しい型を作成できます。新しい標準の作成者は既存のコードを改ざんしたくないので、次の例のように、列挙型を定義するために標準で追加のキーワードを追加する必要があります。

- <! - 2 - >

enumクラスSTATE {DC、TERRITORY = 0、ALABAMA、ALASKA、// …など…};

列挙型クラスは、他のユーザー定義クラスと同じようにフルスケール型になりました。次の2つの理由から、以下は法的ではありません:

int s = ALASKA;
まず、定数ALASKAはSTATE名前空間内でのみ定義されます。したがって、定数の名前はSTATE::ALASKAです。第二に、タイプはintではなくSTATEです。 STATE型の値をintに代入することはできません。

- <! - 1 - >

状態s =状態::ALASKA;プログラマは、STATEをintにリキャストすることはできますが、明示的に行う必要があります。暗黙的な変換では、列挙クラスで切り捨てることはありません。

int n =(int)STATE::ALASKA;

列挙型のSTATE:char {DC、// …宣言の残りは同じです
C ++で強く型付けされた列挙型 - ダミー

エディタの選択

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

Objective-Cでは、作成していないクラスであっても、iOSアプリケーションの既存のクラスに独自のメソッドを追加できます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション...

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーションの開発では、Objective-Cを使用すると、自分が作成していないクラスであっても、既存のクラスに独自のメソッドを追加することができます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション(たとえば、...

In App Purchase機能がiPadアプリで動作する仕組み

In App Purchase機能がiPadアプリで動作する仕組み

Apple App App Purchase機能を提供します。これにより、アプリユーザーはアプリ内から仮想アイテムを直接購入することができます。複数のレベルや環境、または仮想プロパティを持つゲームアプリケーションを開発する場合は、アプリケーションにIn App Purchase機能を追加して、レベル、環境、またはプロパティをさらに販売することを検討してください。 App Purchaseで...

エディタの選択

効果的なホームビジネスWebサイトを作成する方法 - ダミー

効果的なホームビジネスWebサイトを作成する方法 - ダミー

素晴らしいかもしれませんが、製品やサービスをさらに販売するのに役立たない場合は、時間とお金の無駄です。自宅のビジネスにとって本物の資産であるWebサイトを構築するための、実証済みの方法をいくつか試してみましょう。難しいことではありません...

マスターCSSファイルを作成する方法 - ダミー

マスターCSSファイルを作成する方法 - ダミー

多くのデザイナーがマスターHTMLコードのCSSファイルを作成し、個々のサイトのニーズに合わせて、最初からウェブサイトを構築するプロセスをスピードアップします。あなたがより多くのウェブサイトを構築するにつれて、いくつかのスタイルは標準的なデザインプラクティスの標準的な部分になります。 ...

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

Bing検索結果と並んでクリック単価(PPC)広告はMSN adCenterを通じて提供されます。 adCenterを使用して、Webマーケティングのニーズに合わせてアカウントとキャンペーンを作成できます。 Microsoftは、Bing Travel、adCenter Desktopなどのプログラムを追加することで、PPCサービスのインターフェース、ツール、検索品質、およびボリュームを向上させるために歩み続けています。...

エディタの選択

地中海ダイエットレシピ:フルーツサラダ - ダミー

地中海ダイエットレシピ:フルーツサラダ - ダミー

果実は地中海で豊富に生育し、地中海沿岸に沿って、アメリカ人より一般的に果実を多く食べるため、地中海の高レベルの疾病予防に貢献しています。あなたの次の食事やパーティーのために健康的なサイドディッシュのフルーツサラダを作るには、いくつかの方法があります。果物は地中海で豊富に生育し、地中海沿岸に住む人々は一般にアメリカ人よりも多くの果実を食べるため、地中海の高レベルの疾病予防に寄与します。

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

ジャイロとピタサンドイッチは一般的なカジュアルな食品です地中海でピザや他の地中海のサンドイッチと同じように、今日はピタサンドイッチとジャイロのさまざまなバージョンが存在します。ピタスは蒸気で作られた中央のポーチ付きの丸いパンです。