TENKAIKEN Storehouse
About
C言語~C99で追加された仕様 ▸行末までコメント(C++のコメントを採用)▸変数宣言はブロック先頭でなくてもよい▸forの初期化部で変数宣言ができる▸bool型▸64ビット整数▸ビット数が明確な整数型▸指定する添字の排列要素を初期化する(指示初期化子)▸指定する構造体メンバを初期化する(指示初期化子)▸動的なサイズ指定による配列宣言▸サイズ0の配列宣言▸複合リテラル▸インライン関数▸可変長引数マクロ関数▸現在の関数を参照するマクロ
C言語のポインタコーディング例 ▸整数型変数のポインタ▸配列の変数名をポインタとして参照する▸配列のポインタを別のポインタ変数で参照する▸多次元配列のポインタ▸配列の次元単位のポインタ▸ポインタ変数の配列▸配列に文字列を初期化する▸ポインタによる文字列の参照▸整数のポインタのポインタ▸文字列のポインタのポインタ▸文字列のポインタ配列とポインタのポインタ▸構造体のポインタへの代入と参照▸構造体のポインタから配列・構造体メンバを参照する▸構造体のポインタから構造体の配列メンバを参照する▸構造体ポインタからポインタ変数メンバを参照する▸構造体ポインタから構造体ポインタメンバを参照する▸構造体のポインタ配列を初期化する▸構造体を別の構造体型にキャスト▸参照渡しの関数の引数▸構造体の引数参照渡し▸関数の引数が多次元配列の参照▸関数の引数がポインタ配列▸引数戻り値にポインタを返す▸戻り値にポインタを返す関数▸構造体のポインタを返す関数▸voidポインタからポインタ型のキャスト▸配列をvoidポインタのキャストにより別の型で参照する▸voidポインタで異なる構造体型にキャスト▸関数ポインタ▸関数ポインタに関数を切り替えて代入して呼び出す▸引数の関数ポインタを関数内で呼び出す(コールバック)▸関数ポインタの配列
C言語プリプロセッサ ▸#include ファイル内容の取り込み▸#include C++のヘッダファイルとstd名前空間▸#include C++のヘッダファイル(C言語互換)▸#define 定義だけのマクロ▸#define マクロ定数定義▸#define マクロ関数▸#define 複数行のマクロ定義▸#define 可変長引数のマクロ関数▸#A マクロ関数引数を文字列化▸A ## B トークン連結▸#if #elif #else #endif 条件付きコンパイル▸#indef #ifndef 定義で判断する条件コンパイル▸#if defined 条件付きコンパイル▸#undef マクロ定義消去~再定義▸__FILE__ __LINE__ など 定義済みマクロ定数▸__STDC__ __STDC_VERSION__ Cバージョンを示す定数▸#line 行番号/ファイル名の途中変更▸#error #warning エラー中断と警告▸重複include防止▸#pragma once 重複include防止▸#if 0 コメントアウト▸#pragma pack 構造体アライメント調整
C++ C言語からの文法の追加 ▸デフォルト引数▸グローバルスコープのスコープ解決▸インライン関数▸constによる定数▸関数のオーバーロード▸C言語のリンケージ指定▸エイリアスとしての参照▸参照を返す関数▸変数の初期化方法▸名前空間▸bool(真理値)型▸標準出力std::cout▸標準出力std::coutの書式▸標準入力std::cin
C++ クラス ▸クラスの定義の簡単な例▸メンバ関数をインスタンスのポインタ・参照から呼び出す▸using namespace 名前空間の指定▸コンストラクタの役割(設定値チェック)▸複数のコンストラクタを定義する▸コンストラクタとデストラクタが呼び出されるタイミング▸セッター・ゲッター関数(カプセル化)▸インラインメンバ関数▸コンストラクタの中でメンバ関数を呼び出す▸メンバの参照を返すメンバ関数▸メンバ関数のconst宣言▸メンバイニシャライザ▸int型などのメンバのメンバイニシャライザ▸newによるオブジェクト生成▸int型等をnewで生成▸newでオブジェクトの配列を生成▸newで数値型等の配列を生成▸クラスのメンバをnewで生成する▸インスタンス間の代入▸現インスタンスを参照するthis▸thisでインスタンスを判断▸代入演算子オーバーロードの自己代入チェック▸連続する代入のためにthisの参照を返す▸コピーコンストラクタ▸引数を渡すときのコピーコンストラクタ▸同一クラスインスタンスのprivateメンバアクセス▸静的メンバの初期化▸静的メンバ関数▸フレンドクラス▸フレンド関数▸オブジェクトの配列の初期化▸new/deleteのオーバーロード▸newのオーバーロードで追加の引数▸クラス専用のnew/deleteオーバーロード
C++ クラスの継承 ▸クラスの継承▸スーパークラスのメンバを継承する▸再定義元のスーパークラスのメンバ関数を使う▸スーパークラスの型でメンバ関数を呼び出す▸サブクラス共通のスーパークラスのメンバ関数を呼び出す▸仮想関数のサブクラスの再定義関数を呼び出す▸仮想関数を継承したメンバ関数も仮想関数▸純粋仮想関数/抽象クラス▸スーパークラスのデストラクタは仮想関数にする▸継承のみアクセス許可するprotected
C++ 演算子のオーバーロード ▸オブジェクト間の+演算のオーバーロード▸オブジェクト+数値型のオーバーロード▸数値型+オブジェクトのオーバーロード▸-の単項演算のオーバーロード▸++インクリメント演算子のオーバーロード▸関係演算子のオーバーロード▸配列参照[]のオーバーロード▸型キャストのオーバーロード
C++ テンプレート ▸関数テンプレート▸クラスメンバ関数個別のテンプレート▸クラステンプレート▸定義と実装を分けないクラステンプレート▸クラステンプレートの継承▸クラステンプレートの静的メンバ▸複数のテンプレートパラメータ▸デフォルトのテンプレートパラメータ▸非型テンプレート▸テンプレートパラメータの参照型
C++ 例外処理 ▸try例外送出・catchで捕捉▸文字列の例外オブジェクト▸関数からの例外送出▸例外スローの関数の伝播▸例外の再送出▸複数の例外オブジェクトの捕捉▸全ての例外を捕捉するcatch▸クラス定義した例外オブジェクト▸例外オブジェクトの派生型の区別▸コンストラクタから例外送出▸関数から例外送出しないnoexcept宣言▸標準例外▸標準例外の送出▸exceptionの派生例外クラスを定義▸ゼロ除算は例外で捕捉できない
C++ STL ▸vectorの初期化と参照▸vectorを要素数指定で生成▸vectorの末尾追加・末尾削除▸vectorのサイズ取得・サイズ変更▸多次元のvector▸vectorのイテレータ参照▸vectorの参照変数▸vectorのイテレータから要素を参照・変更する▸読み出し専用イテレータ・逆方向イテレータ▸vectorの削除・挿入▸vectorの全消去▸vectorの空判定▸vectorをforで反復参照する▸listの初期化とイテレータ参照▸listの先頭・末尾の追加・削除▸listのサイズ取得・サイズ変更▸listのイテレータから要素を参照・変更する▸listの指定値の要素を削除する▸listの削除・挿入▸listの全消去▸listの空判定▸listのソート▸setの初期化とイテレータ参照▸setの追加・削除▸setのサイズ▸setの全削除▸setの空チェック▸setの検索▸クラスのset格納▸mapの初期化と参照▸mapのpairによる初期化▸mapのイテレータ参照▸mapの値変更▸mapの削除▸mapのサイズ▸mapの全削除▸mapの空チェック▸mapの検索▸mapをforで反復参照する