やさしい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の実行画面
Books
Home