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で反復参照する