やさしいC++ | (SBクリエティブ) |
・書籍中のサンプルコード(第5版) ・セキュリティ強化版サンプルコード(第5版) ・Visual Studioダウンロード |
|
書籍情報 | |
本書は2017年6月に「やさしいC++ 第5版」として改訂されています。
第1版時の資料 第2版時の資料 第3版時の資料 第4版時の資料 |
|
正誤表 | |
---------- 11刷以降修正 ---------- ・74ページ Sample3.cpp 1行目 (誤)<stdio.h> (正)<iostream> ---------- 10刷以降修正 ---------- ・502ページ 8行目 (誤)char* err (正)const char* err ---------- 9刷以降修正 ---------- 56ページ Sample4 1行目 143ページ Sample1 1行目 150ページ Sample5 1行目 152ページ Sample6 1行目 161ページ Sample10 1行目 (誤)<stdio.h> (正)<iostream> ---------- 5刷以降修正 ---------- ・286ページ 見出し「文字列配列を出力する」の前に追加 (追加) また文字列中の各文字を変更しない場合には、char型の前にconstをつけることができます。 const char str[6] ="Hello"; ・287ページ 見出し「文字列をポインタで扱う」1行目 (誤)char型へのポインタ (正)ポインタ ・287ページ 見出し「文字列をポインタで扱う」3行目のコード (誤)char* str = (正)const char* str = ・287ページ 下から4行目 (誤)char型へのポインタ (正)ポインタ ・287ページ 下から3行目 (誤)char型へのポインタ (正)ポインタ ・287ページ 最下行に追加 (追加) なおこのとき文字列中の各文字を変更しないものとするため、char型の前にはconstをつけます。 ・288ページ 図説2行目 (誤)char* str= (正)const char* str= ・288ページ 本文1行目 (誤)char型へのポインタ (正)ポインタ ・288ページ コード中6行目 (誤)char* str= (正)const char* str= ・289ページ コードの上3行目 (誤)(の先頭要素) (正)(の先頭要素のアドレス) ・289ページ コード中1行目 (誤)char* str= (正)const char* str= ・478ページ コード中12行目 (誤)Car(char* (正)Car(const char* ・478ページ コード中下から9行目 (誤)Car::Car(char* (正)Car::Car(const char* ・480ページ コード中12行目 (誤)Car(char* (正)Car(const char* ・480ページ コード中下から5行目 (誤)Car::Car(char* (正)Car::Car(const char* ・487ページ コード中12行目 (誤)Car(char* (正)Car(const char* ・487ページ コード中下から14行目 (誤)Car::Car(char* (正)Car::Car(const char* ---------- 3刷以降修正済み ---------- ・542ページ 解答3のコード(2_3.cpp) 下から2行目 (誤)"\\100円もらった\n" (正)"\\100もらった\n" ---------- 2刷以降修正済み ---------- ・146ページ Sample3.cpp 1行目 (誤)<stdio.h> (正)<iostream> ・471ページ 引き出し線3つ目 (誤)前置インクリメント演算子の定義です (正)後置インクリメント演算子の定義です ・480ページ コード中12行目 (誤)Car::Car(char* pN, int n, double g); (正)Car(char* pN, int n, double g); |
|
第4版の資料 | |
ここより下記は第4版時の資料です。
・書籍中のサンプルコード(第4版)(ZIP圧縮) ・正誤表(第4版) |
|
正誤表(第4版) | |
・34ページ Sample6.cpp中 8行目 (誤)16進数10は (正)16進数の10は ---------- 6刷以降修正済み ---------- ・26ページ 本文下から4行目 (誤)std.cout (正)std::cout ・249ページ コード中の引き出し (誤)参照に代入することはできません (正)初期化しないで使うことはできません ・249ページ コードの直後の文 (誤)あとから代入することはできません。 (正)初期化しないで使うことはできません。 ・255ページ 1のマル3 (誤)参照を宣言したあと、 (正)参照を初期化せずに、 ・295ページ 表9-2タイトル (誤)<string> (正)<cstring> ・295ページ 本文2行目 (誤)<string> (正)<cstring> ・295ページ コード2行目 (誤)<string> (正)<cstring> ・296ページ コード2行目 (誤)<string> (正)<cstring> ・376ページ 本文下から6行目 (誤)第8章でも (正)前節でも ・440ページ 本文4行目 (誤)main()メンバ関数 (正)main()関数 ・474ページ 本文4行目 (誤)テキスト演算子 (正)キャスト演算子 ・478ページ 本文3行目 (誤)第9章では (正)第10章では ・478ページ コード2行目 (誤)<string> (正)<cstring> ・480ページ コード2行目 (誤)<string> (正)<cstring> ・487ページ コード2行目 (誤)<string> (正)<cstring> ---------- 4刷以降修正済み ---------- ・148ページ 最初の青色コード部分5行目 (誤)cout << i << "回繰り返しました。\n"; (正)cout << (i-1) << "回繰り返しました。\n"; ---------- 3刷以降修正済み ---------- ・345ページ 下から7行目コード中 (誤)car1 = car2; (正)car2 = car1; |
|
Microsoft Visual C++について | |
本書第4版ではVisual C++ 2010 Express Editionを使用しています。
なお現在(2017.3)は以下よりVisual Studio 2017(Community版)などを利用することができます。 インストール時またはインストールの変更時に、インストーラによって、「C++によるデスクトップ開発」を選択・インストールしておいてください。 ・Visual Studioダウンロード また現在のバージョンでは 標準のstrcpy、strcatなどについてセキュリティに関するエラー(C4996)が出るようになっています。 以下の方法でエラーの取扱を指定しコンパイルすることができます。 ・メニューから[プロジェクト]→[(プロジェクト名)のプロパティ]→左側リストから[構成プロパティ]→[C/C++]→[詳細設定]→右側リスト[指定の警告を無効にする]に「4996」を入力する |
|
第3版の資料 | |
ここより下記は第3版時の資料です。
・書籍中のサンプルコード(第3版)(ZIP圧縮) ・正誤表(第3版) |
|
正誤表(第3版) | |
・526ページ 本文1行目 (誤)ifstreamクラス (正)ofstreamクラス ・526ページ 本文2行目 (誤)ifstreamクラス (正)ofstreamクラス ・531ページ 本文2行目 (誤)istreamクラス (正)ifstreamクラス ・537ページ Sample15中 (誤) char ch; while(!fin.eof()){ fin.get(ch); cout.put(ch); } (正) char ch; fin.get(ch); while(!fin.eof()){ cout.put(ch); fin.get(ch); } -------------------------- 10刷以降訂正済 -------------------------- ・458ページコード中下から2行目 (誤)setY(int b){x=b;} (正)setY(int b){y=b;} ・471ページコード中4行目 (誤)setY(int b){x=b;} (正)setY(int b){y=b;} ・494ページ 本文上から2行目 (誤)dobule型を (正)double型を -------------------------- 9刷以降訂正済 -------------------------- ・420ページ図4-15中後半 (誤):Car(int n, double g) (正):Car(n, g) ---------- 6刷以降訂正済 ---------- ・364ページ2行目 (誤)2つのメンバ関数の定義は (正)メンバ関数の定義は ・415ページ4行目 (誤)サブクラスに継承されていますので (正)派生クラスに継承されていますので ・415ページ4行目 (誤)基本クラスのオブジェクトで (正)派生クラスのオブジェクトで ・415ページ6行目 (誤)また、基本クラスで新しく (正)また、派生クラスで新しく ・415ページ8行目 (誤)基本クラスでは、継承したメンバと (正)派生クラスでは、継承したメンバと ---------- 2刷以降訂正済 ---------- ・184〜219ページ Sample3〜13中cout文中文字列末尾 (誤)¥ (正)\n | |
Visual C++ 2010 Express Editionでの実行について | |
本書第3版ではVisual C++ 2005 Express Editionを使用しています。 現在公開されているVisual C++ 2010 Express Editionでは以下の手順を追加してください。 ・viiページ手順4・5のメニューが表示されるようにする メニューから[ツール]→[設定]→[上級者用の設定]を選択してください。 ・viiページ手順5でコマンドプロンプトが継続して表示されるようにする メニューから[プロジェクト]→[プロパティ]を選択し、[構成プロパティ]→[リンカー]→[システム]を選択してください。 [サブシステム]のリストから「コンソール (/SUBSYSTEM:CONSOLE)」を選択します。 |
|
第2版の資料 | |
ここより下記は第2版時の資料です。
・書籍中のサンプルコード(第2版)(LHA圧縮) ・書籍中のサンプルコード(第2版)(ZIP圧縮) ・正誤表(第2版) |
|
正誤表(第2版) | |
188〜223ページ Sample3〜13中cout文中文字列末尾 (誤)¥ (正)\n 96ページ Sample9 1行目 (誤)<stdio.h> (正)<iostream> 96ページ Sample9 3行目 (誤)main(void) (正)main() 425ページ 下から5行目 (誤)cout << "レーシングカーを作成しました。\n"; (正)削除 -------------------------- 3刷以降訂正 -------------------------- 93ページ 表4-3 (誤)| ビット論理和 左 ^ ビット排他的論理和 左 (正)^ ビット排他的論理和 左 | ビット論理和 左 208ページ 2行目 (誤)呼び出しよりも前に記述すると (正)呼び出しよりも後に記述すると 208ページ 3行目 (誤)main()関数よりも前に記述すると (正)main()関数よりも後に記述すると 222ページ 下から1行目 223ページ 1行目 (誤)max(a, b); (正)maxt(a, b); 223ページ 本文最下行 (誤)max()関数 (正)maxt()関数 406ページ 実行画面1行目 (誤)車を作成しました。 (正)ナンバー0ガソリン量0の車を作成しました。 422ページ コラム3行目 (誤)プログラグラム (正)プログラム -------------------------- 2刷以降訂正 -------------------------- 440ページ 実行画面中下から3行目 (誤)車のナンバーは4567です。 (正)レーシングカーのナンバーは4567です。 453ページ コード中上から10行目 460ページ コード中上から2行目 (誤)"b1は" (正)"bs1は" 453ページ コード中上から15行目 460ページ コード中上から7行目 (誤)"b2は" (正)"bs2は" 478ページコード中下から2行目 479ページコード中上から10行目 (誤)Number n; (正)Number n = *this; 564ページ「new」 (誤)332 (正)322 |
|
第1版の資料 | |
ここより下記は第1版時の資料です。
・書籍中のサンプルコード(第1版)(LHA圧縮) ・正誤表(第1版) |
|
正誤表(第1版) | |
P3891つ目の引き出し線 (正)削除 P3892つ目の引き出し線 (正)動的にオブジェクトを作成しています P390本文1行目〜3行目 (正)new演算子を使ってSample5.cppのように動的にオブジェクトを作成する場合には、デフォルトコンストラクタが必要です。 P263最下段の図内 (誤)num[1]〜 (正)num[0]〜 -------------------- 8刷以前 -------------------- P92の4行目 (誤)表4-2にまとめて (正)表4-3にまとめて P154のSample6の実行画面最後 (誤)繰り返しが終わりました。 (正)0が入力されました。 繰り返しが終わりました。 P157の上から2行目 (誤)Sample4.cppを (正)Sample5.cppを P157本文下から4行目 (誤)Sample6と同じ (正)Sample5と同じ 234ページ1つ目コード中6行目 (誤)*pX=tmp; (正)*pY=tmp; 322ページ構文中 (誤)typedef 識別子 型名 (正)typedef 型名 識別子 322ページ1つ目コード中1行目 (誤)typedef Count unsigned long int; (正)typedef unsigned long int Count; P521解答26・7行目(入れ替え) (誤) do{ cout << "テストの点数を入力してください(0で終了)\n"; (正) cout << "テストの点数を入力してください(0で終了)\n"; do{ -------------------- 5刷以前 -------------------- 155ページ1行目 (誤)while(num == 0) (正)while(num != 0) 155ページ下から5行目 (誤)繰り返しを続けるための条件 (正)繰り返しを終了するための条件 155ページ下から2行目 (誤)while(num != 0) (正)while(num == 0) -------------------- 4刷以前 -------------------- P316図中上下 (誤)func2.h (正)func2.cpp P457コード中下から7行目 (誤)cout << n (正)cout << pN P491コード下から8行目 (誤)右寄せを解除します (正)右寄せで出力します p533 コード中9行目、22行目 (誤)return *this; (正)return p; -------------------- 2刷以前 -------------------- 144ページ構文内 (正)繰り返すかどうか調べる式2 146ページ図内 (正)2.式2の条件がtrueであればブロック内の処理をして式3を処理する 148ページ上から1行目 (誤)for(int i=1; i<5; i++) (正)for(int i=1; i<=5; i++) 197ページ下から2行目 (誤)void showNumber(int) (正)void showNumber(int x) 198ページ図7-9中 (誤)void showNumber(int x=0) (正)void showNumber(int x) 201ページコード上から11行目 (誤)45.191 (正)45.192 201ページコード上から12行目 (誤)45.192 (正)ans2 202ページコード図7-10 (誤)45.191 (正)45.192 207ページ本文上から8行目 (誤)Sample9 (正)7.6節 262ページ図9-4添字訂正 293ページコード上から9行目 (誤)なし (正)func(); (追加) 454ページコード中下から4行目 (誤)0.0 (正)25.5 517ページ上から7行目 (誤)(7+32)/5 (正)(7+32)/(double)5 521ページ下から13行目 (誤)while(num) (正)while(num); 522ページ上から1行目 (誤)cout << '\n' (正)cout << '\n'; 523ページ上から1行目 (誤)sqr関数 (正)square関数 536ページ上から10行目 (誤)if(!fin){ (正)削除 9章Sample3以降のコード番号 (誤)Sample3、... (正)Sample4、... 11章Sample3、4のコード番号 (誤)Sample3、Sample4 (正)Sample2、Sample3 11章Sample6以降のコード番号 (誤)Sample6、... (正)Sample4、... 369ページ下から3行目 (誤)Sample4の実行画面 (正)Sample5の実行画面 |
|