CプログラマのためのC++入門
シープログラマノタメノシープラスプラスニュウモン
書誌
| tag | C++ |
| text | 唯野 |
| author | 柴田望洋 |
| publisher | ソフトバンク |
| year | 1999 |
| price | 2,400+tax |
| isbn | 7973-0962-8 |
履歴
| 2000.6.27 | 読了 |
| 2000.6.28 | 公開 |
| 2002.11.28 | 修正 |
感想
書名の通り C の知識を前提とした C++ の入門書。しかし、C++ の入門書としてはなかなかのできだと思う。具体的にいえば、サンプルプログラムが極めて実践的であり分かりやすいのと、初めに C++ と C の微妙な違いに触れる気配りの点で優れていると思ったからだ。トピックも C++ の言語としての機能はほぼ網羅されているので(とはいえ例外処理などに関しては言及されていない)安心できる。ちなみに著者には類書として『プログラミング講義 C++』もあるが、個人的にいうと既に C で一通りのプログラムを書くことができるのであれば、本書を入門書とした方が確実だし効率的だと思う。
抄録
3-4
C++ は C と Simula67 をベースにした言語で、設計は AT&T ベル研究所の Bjarne Stroustrup が行った。当初「クラス付きの C」と呼ばれていたそれは、Rick Mascitti によって C++ と名付けられると(1983)、その後は以下のような軌跡をたどっている。
| 年 | 内容 |
| 1983 | 大学への頒布 |
| 1985 | 商業ベースの Release 1.0 |
| 1986 | 『The C++ Programming Language (通称 言語 C++) 初版』 |
| 1989 | Release 2.0 (多重継承などをサポート) |
| 1989 | (ANSI C) |
| 1990 | 『The Annotated C++ Reference Manual (通称 ARM)』 |
| 1991 | 『The C++ Programming Language 第 2 版』 |
| 1991 | Release 3.0 (テンプレートなど追加) |
| 1997 | 『The C++ Programming Language 第 3 版』 |
10
C の /* */ 形式のコメントは PL/I から受け継いだもので、C++ の // 形式のコメントは BCPL (C の前身である言語)から採用されたもの。
11/12
const 定数はマクロに比べてスコープを持つという利点がある。また、関数外で宣言された const オブジェクトは内部リンケージを持っているので、ソースファイル単位を超えた参照には extern が必要となる。
ちなみに、リンケージには外部に公表できる外部リンケージ、ファイル内に有効な内部リンケージ、その場限りの無リンケージとがある。
13/14/72
C では構造体/共用体/列挙型を宣言しようとすると、それぞれキーワード(struct/union/enum)とタグ名の記述が必要だったが、C++ ではタグ名だけで宣言できる。(但し、関数名や構造体名に同名のものがあるとキーワードが必要。)また、列挙型は C では int だが、C++ では必ずしも int になるとは限らない。
15-16
ANSI C ではそれ以前の C (K & R の C など)との互換のために関数プロトタイプは必ずしも必要ではないが、C++ では必須となっている。これに伴い C では引数のない関数は、そのための情報がないので「チェックを行うな」(func(...))となるが、C++ では情報があるので「引数を受け取らない」(func(void))と解釈される。ちなみに C++ では可変個数引数の関数宣言でのカンマはなくてもよい。例えば、void func(int foo ...); など。(... の前のカンマが不要。)
全文を読まれる場合はログインしてください
