C++の教科書を作っているのだけれども…

まずは、cout << "hoge"; から始まらない、実践的な C から C++ への移行マニュアルみたいなものを作るという目的は決まっているのだけれども、何処までの範囲を書いたらよいのかだんだんと訳が判らなくなって来て頭を冷やし中。

オブジェクト指向という概念や所謂デザインパターンについては出来るだけ持ち出さずに、「ね、こんなに楽できるからもう C に戻る気がおこらないでしょ」と洗脳するような内容を考えてはいるのだが、あまり深く掘り下げると、C++の歪な所謂バッドノウハウを語らなければならないのが悩みどころ。
・何故常にデストラクタは仮想関数(しなければ…ね)なのだね?
・あと、コンストラクタ・デストラクタが何故自動的にpublicにならないのか理由が判らん。なにか深い使い道があるのか今調べてますが(案外FAQにありそうだけど)

時間があれば、C → JavaC++ という流れのほうが学習する方々もお得でよろしいんでしょうけどね〜。

まあ、気がついたのはどっちにしても半分以上を C の復習に充てなければイカンという事ですね。
だって、Cが判ってないと何で「コピーコンストラクタ」なんてものが存在するか気がつかないでしょうし。

まずは、スタック+ヒープの C での扱い、関数は引数はコピー渡しである事をを徹底的に復習して…参照渡しと、スタックの巻き戻しとデストラクタの同期でどれだけ楽になるかでC++に移行するメリットを感じてくれれば嬉しいんですけどね。

基本的に、以下の項目はどうでもいいと思っているのだが…正直、「これを知っていてもバグの潜在しないコードを書く助けにはあまりならんからな!!」と思っているのですよ。

演算子オーバーロードとか( new / delete 演算子については除く)
ポリモーフィズムとか
・オブジェクト同士がメッセージを送りあう(かのように振舞う事が)手続き型プログラミング言語と違いだとか

面と向かって教えるのだと、楽なんだけどね〜「あ、おれ今うそ言ったわ。コード書いて確かめてみて」とかごまかしごまかし進めますので。

あ、それとUMLはあきらめて覚えましょう。
少なくとも、あとでドキュメントが無いと怒られるよりあの「2chアスキーアートのごときポンチ絵」一つで救われるんですよ!
し、実際覚えるとフローチャートを描くより頭の整理にはよいです。

それと…認めたくはないが… C# って結構よいですよ。