独習C++はじめはC++はCでできること全部できるよーオブジェクト指向だよーC知らない奴は帰れーみたいなことが書いてある。独習Cの宣伝もしてる。あとはC++0xがどうとかこうとか。オブジェクト指向プログラミングとはカプセル化、ポリミーフィズム(関数のオーバーロードとか)、継承とか、Javaで似たようなことやったなーって感じだった。関数のオーバーロードがめっちゃ便利そう。Cだと絶対値求めるのにint型だとabs()、long型だとlabs()、double型だとfabs()って使い分けないといけないけどC++だと全部abs()でOK。いうのを関数のオーバーロード(多重定義?)っていうみたい。(Javaでもあったけど使う機会がそんなになかった。C++標準化の歩みC++0xではいろいろ追加される見込みだよーって話。C++のコンソール入出力いよいよソースコードが出てきた。C++でもprintfとかscanfは使えるけどC++ではcout<>使うよー。C++ではstdio.hのかわりにiostreamをインクルードするよー。'<<b<<endl;って書くみたい。(この本ではendlじゃなくて\n使ってる。)C++のcinとかcoutは型を指定しなくていいから楽っぽい。Cのprintfみたいに表示する桁数の指定とかは載ってないから調べてみたら、std::setprecision()ってのを使うらしい。std;って宣言しとかないとg++ではエラー出た。名前空間の話らしいけどここでは特に言及なかった。単一行で書くコメントがあるよとのこと。Javaと混同してるのか、Cでも両方いけるのでは?とか思ってしまったけどダメらしい。クラスお待ちかねのクラス。こんな感じで宣言するらしい。object-list;object-listはあってもなくても。クラスの宣言内で宣言された変数とか関数のことをそれぞれメンバとかメンバ関数とか呼ぶらしい。メンバって言葉もそうだし、宣言方法もも見た瞬間に構造体っぽいなーと思った。メンバへのアクセスもClassName.ob1みたいにドット使うし、関連に関しては、2章で説明がある。Cの構造体と何が違うかって言うと、公開・非公開があるから、非公開のメンバにはドットを使って直接アクセスは出来ないところか。公開のメンバ関数を使う以外では値を変更できないみたい。構造体の時もそうだったんだけど、最後のセミコロンを忘れそうで怖い。あれこれする}というふうに、関数の名前の前に(クラス名)::を付けないといけない。ここでは書いてないけど、名前空間に関連する話でクラスごとに名前がつけやすいようにしてあるみたい。関数の引数がないときにvoid書くとか冗長だしアホでしょプロトタイプ宣言は必ずしろやゴルァvoid以外で宣言した場合はreturn文で返り値返さないと変な動作するぞ!変数の宣言がどこでもできる!ステキ!bool型で条件文を見やすくしておいてやったぞとか書いてある。overloading)でしょう。関数の中身(実際のプログラム)が違っても、同じ名前で関数の宣言ができる!同じ機能を持つものは同じ書き方で呼び出せる!どの関数を使うかはコンパイラが勝手に判断してくれる!便利!!!!!1.1で述べた絶対値を求める関数での面倒臭さが解消されてるただし、コンパイラが判断できないようなもの(引数の型か引数の数が違わないもの)はオーバーロードできない。これらは全て同じ型の引数を持つためNGこの場合はオーバーロードできない。文字列の長さも一緒に呼び出して、なんとかオーバーロードできないかなーと考えたけど、文字列の長さはだいたい全部intで収まりそうだからやっぱり無理っぽい。C++のキーワードC++の全キーワードが書いてある。friendとか面白そうなキーワードがあったから調べてみたら、クラス関連のキーワードで非公開メンバにアクセスできるが継承されないとかかんとか。このまとめの書き方もめてないから雑多としててわかりにくい。