目次:
ビデオ: プログラミング講座 第4回【JavaScriptの変数】Akichon/あきちょん 2024
DummiesチートシートのC ++部分
C ++プログラムで計算を実行するには式が必要です。式とは、値と型の両方を持つ文です。 C ++プログラムでは、宣言は変数を定義するステートメントであり、数値や文字のようなある種の値のための「保持タンク」です。
式
式は次の形式のいずれかをとります。
objName //単項演算子式の場合//単項演算子の場合expr1演算子expr2 //二項演算子の場合expr1? expr2:expr3 //三項演算子funcName([引数リスト]); //関数呼び出しの場合
リテラル式
<! - 1 - >リテラルは定数式の形式です。さまざまなタイプのリテラルが次の表に定義されています。 【表9】【表10】【表10】【表10】【表10】【表10】【表10】【表10】【表10】【表10】【表10】【表10】 0 999ダブル1。 "文字列"
文字列 | char *(自動的にヌル文字で終了) |
---|---|
wchar_t * | float |
> u8 "これはUTF-8文字列のUTF-8文字列です:u2018" | char8_t * |
u "これはUTF-16文字のUTF-16文字列です:u2018" | char16_t * |
U99-> bool | 0b101 |
バイナリ(C ++ 2014) | U "これはUTF-32文字を含むUTF-32文字列です。標準) |
|
宣言 |
宣言は、組み込み関数型とユーザー定義型の両方を使用します。 | [] [const] type var [= expression]; |
[] char [] wchar_t [] [] int float [long] double bool | 宣言は次のいずれかの形式です。 //変数[] [const]型array [サイズ] [= {リスト}]; // array [const]型オブジェクト[(引数リスト)]; //オブジェクト[const]型オブジェクト[= {引数リスト}]; //代替[const]型* [const] ptr [=ポインタ式]; //ポインタ型&refName =オブジェクト; //参照型fnName([引数リスト]); // function |
変数autoの型をC ++が判別できる場合は、キーワードautoを使用できます。 | <! - 3 - > |
auto var = 1L; // varの型がlong int | キーワードdecltypeは式の型を抽出します。この型は、型名が使用されているどこででも使用できます。たとえば、次の例では、decltypeを使用して、既存の変数と同じ型の2番目の変数を宣言します。 |
decltype(var1)var2; // var2の型はvar1と同じです。
関数定義の形式は次のとおりです。 |
//単純関数[]型fnName(引数リスト){…} //クラス外で定義されたメンバ関数[inlineクラスの外部で定義することもできます::Class([argument list]){…}クラス::〜Class(){… } //コンストラクタ/デストラクタは、定義の代わりに削除またはデフォルトにすることができます。Class:: Class([argument list])=;クラス::〜クラス()=; |
オーバーロードされた演算子は、関数定義のように見えます。ほとんどのオーバーロードされた演算子は、メンバ関数またはシンプルな関数として記述することができます。メンバー関数として記述すると、*これは演算子の最初の引数になります: | <! - 1 - > |
MyClass&演算子+(const MyClass&m1、const MyClass&m2); //単純なMyClassとMyClass:: operator +(const MyClass&m2); // member; | ClassName [:[virtual] [public] BaseClass] {://コンストラクタClassName([arg list])クラス名または構造体キーワードを使用して、 //デストラクタ[仮想]〜ClassName()<{…} | [=; > //パブリックデータメンバータイプdataMemberName [= initialValue]; ([arg list])//仮想メンバ関数virtual型memberFunctionName([arg list] )[{…}]; //純粋な仮想メンバ関数仮想型memberFunctionName([arg list])= 0; //基本クラスの関数型をオーバーライドする必要がある関数memberFunctionName([arg list])override; //サブクラス型でオーバーライドできない関数memberFunctionName([arg list])final;};さらに、1つの引数を持つコンストラクタは、あるタイプから別のタイプへの暗黙的な変換では使用されないことを意味する明示的なフラグを立てることができます。デフォルトとしてコンストラクタにフラグを立てることは、「デフォルトのC ++コンストラクタ定義を使用する」ことを意味します。コンストラクタにdeleteとしてフラグを立てると、デフォルトのC ++コンストラクタ定義が削除されます。 |
C ++は2種類の列挙型をサポートしています。次の古い列挙型は新しい型を作成しません:
列挙型STATE {DC、// ALABAMAを取得する、// ALASKAを取得する、// ARKANSASを取得する、// 3を取得する//など…}; int n = ALASKA; // ALASKAはint型です。
デフォルトでは、個々のエントリはint型ですが、これはC ++ 2010標準で変更できます:
enum ALPHABET:char {A = 'a'、// 'a' B、// 'b' Cを取得する、// 'c'を取得する// …など)}; char c = A; // Aはchar型です。
C ++ 2011では、新しい型を作成する2番目の形式を使用できます。
- <! - 1 - >
//タイプTは、使用時にプログラマが提供する。FunctionName([arg list])テンプレートクラスClassName {{…}};