日本語
[効果的なC++] item 01

[効果的なC++] item 01

C++を言語の集合体として捉える目線は必須です。

C++ はマルチパラダイムのプログラミング言語

  • もともとはオブジェクト指向機能を追加した C から始まった

  • 現在は手続き型・オブジェクト指向・関数型・ジェネリック・メタプログラミングまでサポートする

  • ジェネリックプログラミング: データ型に縛られず、ひとつの値が様々なデータ型を持てるようにすることで再利用性を最大化するプログラミングパラダイム

  • メタプログラミング: 自身または別のプログラムをデータとして扱い、プログラムを記述・修正すること。実行時に行うべき処理の一部をコンパイル時に行う方式を指すこともある

  • C++ を単一の言語ではなく言語の連合体として捉え、それぞれのルールに合わせる必要がある

    • C: 多くのものは C に由来するが、C++ ではより良いアプローチを提供することが多いため、より制限的で安全な範囲で使うとよい

    • オブジェクト指向 C++: クラスが存在する C++ の中心であり、オブジェクト指向設計が最も直接的に作用する領域

    • Template C++: 頻繁に触れる領域ではなく、主流の C++ とほぼ相互作用しないが、TMP という強力なパラダイムを生み出した

    • STL: Template ライブラリだが非常に特殊なケースであり、STL を使う際には特有の流儀があって必ずそのルールに従う必要がある

  • 上記の下位言語間で切替が起きると、戦略を変える状況に直面することがある

  • 単一のルールではなく、それぞれ独自のルールを持つ下位言語の集合だと理解すれば、C++ はより分かりやすくなるはず

댓글 작성

게시글에 대한 의견을 남겨 주세요.

댓글 0