/python2cpp

Pythonを知っている人向けのC++入門

Primary LanguageC++Creative Commons Attribution 4.0 InternationalCC-BY-4.0

Pythonを知っている人向けのC++入門

このドキュメントについて

これは、ある程度Pythonを使ったことがある人向けのC++入門である。目的は、Pythonをぼんやり知っている人が、C++を使って困らないようにすることだ。読者としては、大学でPythonの講義を受けたあと、うっかりスパコンでC++を使う研究室に入ってしまった学生さんを想定する。ここではCとC++を区別せずにまとめて「C++」として扱う。例えば、C++の標準にこだわらず、C言語の関数を断りなく使う。C++の言語仕様の理解を目的とせず、Pythonの感覚で使ったら理解できない振る舞いをしたり、よくわからないエラーが出たりするのを防ぐことが主目的である。言語仕様についてはかなりいい加減に扱うため、きっちりした扱いを望む人は、他のドキュメント、例えば江添さんのC++入門を参照されたい。

C++の概要

  • コンパイルとリンク
  • main関数
  • プログラムのスタイル
  • 変数や関数の宣言
  • C++のバージョン

変数宣言とスコープ

  • 変数の宣言
  • スコープ
  • グローバル変数の扱い
  • switch文
  • 変数宣言の位置とfor文

関数の宣言

  • 関数の宣言
  • 引数と返り値
  • 値渡しと参照渡し

ヘッダファイル

  • 関数呼び出しとアドレス
  • 分割コンパイル
  • プリプロセッサ
  • まとめ

ポインタと配列

  • 変数とメモリ
  • 変数のアドレス
  • ポインタ
  • ポインタのデリファレンス
  • 配列

スタック領域とヒープ領域

  • 問題を起こす例
  • ヒープ領域
  • スタック領域
  • 関数の再帰

多次元配列

  • Row-majorとColumn-major
  • 多次元配列とポインタ
  • newやmallocによる実現に触れる?

執筆予定(予定は未定)

  • プリプロセッサ
  • 分割コンパイルとmakeファイル
  • インラインアセンブリ
  • 組み込み関数
  • MPI

C++の闇

  • ヌルポインタのデリファレンス
  • 返り値を返さない関数
  • 無限ループは存在しない

ライセンス

この文章と絵(pptxファイルを含む)はクリエイティブ・コモンズ 4.0 表示 (CC-BY 4.0)で提供する。