美しいC++プログラミング見本帖(柏原 正三)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 美しいC++プログラミング見本帖

美しいC++プログラミング見本帖


形式:
書籍
発売日:
ISBN:
9784798107769
定価:
3,080(本体2,800円+税10%)
仕様:
A5・464ページ

めざせ、C++の達人!

本書は、C++の基本的な文法を学び終えたばかりの初心者が、文法の学習から実践的なプログラミングの習得へステップアップするための支えとなることを目的にしています。そのために、C++プログラミングにおいてよくある間違い、必須のテクニック、ライブラリの活用方法やクラス定義を学ぶためのポイントなどを82個のトピックに分け、トピックごとにコード例を提示しながら詳しく説明します。各トピックには、必ずBADなサンプルプログラムとGOODなサンプルプログラムを用意しています。BADなプログラムはどこが悪いのか、GOODなプログラムを書くにはどこに気をつければよいのかを「体感」することにより、C++のプログラミングテクニックを磨いていきましょう。

第1章 さあ、C++コードを書いてみよう

標準ライブラリが使えないのはなぜ?~名前空間その1
名前空間スコープをまとめて解決するには?~名前空間その2
staticなグローバル変数はやめよう!~名前空間その3
printf()系関数を使うのはやめよう!~標準入出力ストリームを使う
C++では同じ名前の関数を定義してもいいの?~関数の多重定義
入出力マニピュレータをうまく使用できない!

第2章 C言語との技術的な違いを整理しておこう

引数付きマクロを使うのはやめよう~インライン関数を使う
論理値をbool型に格納しよう!
constの変数には値を代入できないの?
記号定義を使うのはやめよう~名前付き定数を使う
変数の宣言位置とスコープ解決演算子を理解しておこう
Cの型キャスト演算子を使うのはやめよう~static_cast演算子を使う
関数呼び出しでは注意しよう!~関数のプロトタイプ宣言
タグ名と型名の違いに気をつけよう!~struct、union、enum
関数のプロトタイプ宣言がクラス名と堂々巡りになってしまう!
CモジュールをC++プログラムとリンクしたい

第3章 オブジェクト指向の考え方に切り替えよう

参照の使い方がよくわからない
ポインタ型の戻り値と参照型の戻り値がエラーになるのはなぜ?
stringクラス型のオブジェクトを生成したい~コンストラクタ
クラスのメンバ変数にアクセスできない!~staticなメンバ
stringオブジェクトの文字列にCの文字列操作関数を適用したい!
動的に生成したstringオブジェクトが機能しないのはなぜ?

第4章 オブジェクトの中にCの関数を取り込んでみよう

クラス定義では使えない初期化方法ってあるの?
Cのライブラリ関数を使いたい~C++用のライブラリヘッダーを使う
クラスのstatic属性のメンバ関数を呼び出したい~スコープ解決演算子を使う
メンバ変数を初期化できない!~staticなメンバ変数
冗長な関数定義はやめよう!~デフォルト引数その1
クラス型オブジェクトの配列を初期化したい~自動変換
さあたいへんだ!~メモリリーク

第5章 オブジェクト指向のクラスを作ってみよう

大量のアクセスエラーが出るのはなぜ?~classキーワード
奇妙な値が表示されてしまう!~空のデフォルトコンストラクタ
デフォルトコンストラクタが呼び出されないようにしたい
デフォルトコンストラクタがダブってしまった!~デフォルト引数その2
メモリリークに気をつけよう~再割り当て
大きいメンバ関数はクラスの外部に定義しよう
外部定義のメンバ関数をインライン化したい
データメンバの初期化がおかしい!

第6章 オブジェクト指向クラス定義の勘所を押さえよう

オブジェクトを危険にさらすのはやめよう!~メンバ関数のconst宣言
delete演算子が失敗するのはなぜ?~二重解放の問題
データメンバにアクセスできない!~staticなメンバ関数
おかしい!thisポイントが使えない
使えるところでは演算子関数を使おう!~operatorXXX()
同じデータをクラスの複数のオブジェクト間で共有にするには?
コピーコンストラクタを実装しよう~オブジェクトを使った初期化
コピー代入演算子関数を実装しよう~オブジェクトの代入

第7章 クラスの継承とポリモーフィズムをものにしよう

派生クラスのインスタンスを生成できない!
継承した基本クラスのメンバにアクセスできない!~private属性
仮想関数をオーバーライドできない~virtualキーワード
仮想関数をオーバーライドできない~オーバーロード
派生クラスのデストラクタが呼び出されない!~メモリリーク
なぜ抽象クラスが必要なの?~ポリモーフィズム
純粋仮想関数をオーバーライドしたのにインスタンスを生成できない!
多重継承であいまいエラーになってしまう!~スコープ限定
クラスに同じクラスの特性を複数持たせたい~「has-aの関係」
多重継承であいまいエラーになってしまう!~virtual継承

第8章 値渡しと参照渡しを使いこなそう

参照型の仮引数にはconst変数を指定できないの?
参照型の仮引数に指定するオブジェクトの安全を保証したい
const宣言したらメンバ関数がデータを変更できなくなった!
ポインタが指すアドレスだけを固定したい!~constポインタ
const宣言の戻り値でも参照渡しなら変更できるのでは?
変だ、演算子をオーバーロードできない!
オーバーロードしたoperator+()演算子関数がおかしい
オーバーロードした後置形式の演算子関数がおかしい
基本データ型の使える演算子関数を作りたい~非メンバ演算子関数
危険な値渡しってあるの?~ポインタを保持するクラス

第9章 例外とファイル処理を使いこなそう

例外のしくみがよくわからない
目的とする例外を捕捉できない!
new演算子のエラーに対処できない!~NULLポインタとbad_alloc例外
ファイルを読み取るとオブジェクトが正しく表示されない!
ストリーム入出力演算子をオーバーロードできない!
バイナリファイルをコピーできない!~入出力モードを指定する
stringクラスは例外を投入することがあるの?~length_error例外
テキストファイルを行ソートしたい~getline()メンバ関数

第10章 C++標準ライブラリを使ってみよう~テンプレートとSTL

テンプレート関数が正しく機能しないのはなぜ?~関数の型指定
テンプレートクラスが使えないのはなぜ?~クラスの型指定
vectorコンテナの最後の要素を処理できない!~past-the-end
コンテナの要素を簡単に表示したい~関数オブジェクト
listコンテナの反復子が使えないのはなぜ?~反復子の種類と特性
listコンテナの任意の要素の反復子を取得したい~advance()関数
アルゴリズムをうまく使えないのはなぜ?
mapコンテナのインスタンスを生成できない!~よくある話
二項述語を単項述語に変換したい~バインダを使う

付属データはこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。
この商品の「よくある質問」はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2005年07月14日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 006
上から2行目
2刷
bitsetコンテナ
bitset
2005.07.14
1刷 016
staticBad.cpp
2刷
static const size = 10;
static const int size = 10;
2005.07.11
1刷 018
本文下から2行目
2刷
const size = 10;
const int size = 10;
2005.07.11
1刷 018
staticGood.cpp
2刷
const size = 10;
const int size = 10;
2005.07.11
1刷 138
Timer1Good.cppの下から5行目、4行目
2刷
② 動作を再開します。に←がかぶっている
←②は下から3行目の空行を指す
2005.07.14
1刷 388
下から10行目
2刷
if (max_size() - source.length() > maxsize)
if (source.max_size() - source.length() > maxsize)
2005.07.14
1刷 401
下から7行目
2刷
<algorithm>ヘッダーのアルゴリズム
<numeric>ヘッダーのアルゴリズム
2005.07.14
1刷 422
コード部分の下から6行目
2刷
//ベクトルコンテナの要素を表示する
コメントの頭にある空白を削除し、前行の頭に揃える //ベクトルコンテナの要素を表示する
2005.07.14
1刷 435
上から7行目
2刷
nstr型
nstr部分のフォントを他と同じ明朝にする nstr型
2005.07.14

感想・レビュー

てったい北関東 さん

2012-08-01

文法的なものではなく、実際に間違えやすいポイントポイントの解説。文法習ってもどう使えばいいかわかんないよ!なときの二冊目によさそう。ぼくもあまり理解がなかったので、丁寧で結構わかりやすかった。見た目、中のレイアウトも、プログラマたちは嫌いそうな感じではあるが。