Tuesday, May 31, 2005

C++のお勉強【第1回】



Chapter 1 C++の基礎知識

1.1 基本的な知識

ここではC++言語のもつ雑多な規則が説明されている.

■ 空白系文字の扱い
C++では(まぁC++に限ったことではないだろうが),
改行文字も同様に空白として扱われるので,行の終わりは認識されない.
ただ,どんなものにも例外はつきもので,
今回の場合それは1comment機能と#define等のpreprocessor commandである.
また,行末に'\'を入力することで直後の改行文字が無視され,
例えば,以下の例のような記述が可能であるが,まじで使い道がわからん.


#define beep() cout << '\a'


■ 三連文字,二連文字
たしかに言われてみればって感じのことです.
まぁtrivia的なことですた,これのせいでおかしな動作をすることがあるらしいので,
頭の片隅にでも収納されていてはどうでしょうか.

■ 左辺値,右辺値
代入記号'='に対して左にあるか右にあるかという意味で,
左辺値:objectを参照も変更もできる→代入式の左辺にも右辺にも書ける.
右辺値:objectの参照はできるが変更はできない→代入式の右辺に書ける.

EOFNULL
EOFfileの末尾をNULLdataがない状態を意味する.
C++ではNULLよりただの0を使ったほうた問題が少ないと推奨されています.


1.2 オブジェクト指向プログラミング

overloadoverride
overload:仮引数の型や個数が異なる同じ名前の関数をいくつも定義すること.
override:基本となる関数があり,その関数の名前と仮引数構成を維持したまま,
      まるで上書きするように,新しい機能の関数を再定義する機能.

template
関数やクラスをどのdata型でも対応できるように特殊なstyleで記述したもの.
templateを使って記述された関数をgeneric function,同じくclassgeneric classと呼ぶ.


Chapter 2 定数

2.2 整数定数
数値定数は8進数,10進数,16進数からなる.
また接尾子U(u)L(l)を数字の後ろにつけることで,定数の型を指定できます.

2.3 浮動小数点定数
小数点形式:periodを使って表現する
指数形式:eまたはEを使って表現する e.g. 3.456e2(=345.6)
float型定数: fまたはFを後ろにつける
long double型定数:lまたはLを後ろにつける

2.6 文字列定数
文字列定数: "文字列"
ワイド文字列定数: L"文字列"

■ 文字列定数の連結
隣接する文字列定数は連結され,ひとつの文字列と見なされます.

C++のお勉強【第0回】



さて,このBlogの趣旨通り勉強を始めようと思う.
教材は林晴比古先生の「新C++言語入門」.
C++のことはたいてい理解しているつもりだが,まずは基本の復習から初めていこうと思う.

で,勉強のroadmapだが,ここで基礎を復習した後はEffective C++を本格的に読もうと思う.
これまではちょこちょこ断片的に読んでいただけなので,しっかりと読破したいものである.

Friday, May 13, 2005

counter始めました.

Blogger改造第2弾ですが,なんとなくcounterつけてみました.
昔から利用させて頂いていた忍者TOOLSさんのcounterです.
counterつけてみて思ったのは,BloggerBlogサービスではなく,
日記とかBlog風のHome Pageの構築ができるOnline HTML Editorであるということです.

だったらEditorの部分は納得のlevelには達していないと思います.
Offlineでの作文環境並のEditorが実装された上で,
Link等がseamlessに行えるようにならないとserviceとしては難しいでしょう.

せめてTag補完とかIncremental SearchEditorに実装されるのはいつになるのだろうか.

まずはBloggerの勉強から

これは困った.
初めてのEntryをして,さぁTop Pageでも拝もうかと思ったのだが,文字化け.
charsetよりtitleの方が先に来るため,titleの文字コードで表示されているのかな?
というわけで,
<$BlogMetaData$>
<title><$BlogPageTitle$></title>
というような順番にしたところ解決.
Googleさんしっかりしてくださいよ.

ここは私の勉強帳

何かを始める際には,それが何なのかを明確に宣言する必要があると思う.
それも他に対してだけでなく自分に対して行う必要があると思う.
これにより,自分の中で明確な他との境界線を引くことができ,
その何かに関する選択と集中が容易になるからだ.

このBlogは私の勉強帳にしようと思う.
例えば私がEffective C++を勉強したとする.
勉強する内容についてメモしながら読むのは一般的だろう.
そしてわからないことがあったら調べる.
それをBlog上で行おうと思う.

多分,部分引用があるかないかって程度だろうから著作権上の問題はないと思う.
このような取り組みは他にも色々やられているだろうし.

ただ,自分の理解のために,そしてそのArchiveのためのBlogであるので,
検索などでここにたどり着いた人には少し不親切な内容になっているかも知れない.

最後に,間違い等の指摘は大歓迎である.