今日は、出向してから始めた
現在、独学しているC言語とC++のお話です。
以前の記事で紹介できていなかったのですが、
私が学習用として購入したのが下記の2冊です。
C言語が、
C++が、
「新・明解 C++ 入門 柴田望洋著」です。
C++はC言語を拡張したものということで、
一緒に学んだ方がいいかなと思い、同時並行で本を読むことにしました。
そして、せっかくなら同じ人が書いた本がいいかなと考え、
柴田望洋先生の上記2冊を購入しています。
C++は、まだ読了していませんが、
参考プログラムもあり、しっかり解説してある為、
入門編として個人的には満足です。
※ただ、ポインタやクラスの部分は、ちょいちょい混乱します。
本が難しいというよりは、
単純にポインタやクラスが難しく
分かりづらいというところです。
そんなこんなで少しずつ学習を進めまして、
やっとこさ構造体やクラスといったところまでやってきました。
ただ、完全に理解できているかと言われれば、
かなり怪しい雰囲気です。
今のところの理解では、
関係する各変数をひとまとめにしたものが構造体。
それらをC++で関数も含めて拡張したのがクラスといった理解です。
ただ、実際に使用するとなると
「あれっ、どうだったけ?」となってしまいます。
ちょうどこれらの2冊を使用しながら、
同時に学習していたので、
クラスは構造体の拡張という点は
クラスの部分を読んでいるときに、
「あれ、これって構造体に似ているな」と思っていたので、
すごくしっくりきました。
ただ、開発環境の関係やC言語、C++の規格の関係で
参考プログラミングがエラーを出すときがあるので、
そこでちょいちょい時間がかかってしまいます。
私みたいな初心者は、
このような書籍に載っているものは、
全てが正しいという意識で
これらの書籍を読んでいるので、
かなり混乱してしまいます。
もしかしたら、打ち間違いかもと思い込み、
ひたすら画面とにらめっこ。
ただ、何も間違っておらず、あれっとなる感じでした。
最近は、書籍のプログラムが動かない場合でも
そういうこともあるかと受け入れて、
何故動かないのか、何がいけないのかを
すぐにインターネットで検索するようになりました。
もし、自分のように新たにプログラミングを
始めようとしている人は、
書籍が100%正しいと思わず、
学習した方がいいと思います。
100%正しいと思って学習していると、
ひとつ実行出来ないだけで
思考ストップに陥る可能性があります。
例えば、自分が使っている
書籍で普通に使用されているscanfが使えません。
エラーを出してコンパイル出来ません。
その為、scanf_sを使用しなければならなくなり、
scanf_sを使用すると、
文字列の場合、scanfと実引数が違ってくるため、
また調べないといけなくなります。
これがなかなかめんどくさいです…汗
ちなみに他にもfopen_sやstrcpy_s等、
これらのようなエラーが出る関数がたくさんあります。
しかしながら、こういうときは、
インターネットがやっぱり役に立ちます。
書籍で読んでて、分からない点は
すぐにインターネットで検索するのがおすすめ。
書籍は、項目毎に整理されていて、
分かりやすいですが、
処理系に依存する等、予期せぬトラブルもある為、
インターネットと併用で勉強するのが大事だと感じました。
ちなみにいろいろ書いてきましたが、
否定している訳ではなく、
今回ご紹介した2冊はとてもいい本です。
実際、自分も購入してよかったと思っています。
もしC言語とC++を始めようと思っている方は、
是非この2冊を試してみてはいかがでしょうか。