本格的にプログラミングを始めてもいいんじゃないかなーっと思い始めた今日この頃です。
最初小6ぐらいの時はなんかわからんけど楽しげだったから~とかそういう理由でやっていて、
その後この4,5年ぐらいずっと同じ感じで、気が向いたら自分のやりたいことを書いて、書けなくなったら書けるように何かを調べて、で書けるようになって
とかいうこのループを2か月毎ぐらいで行ってきたわけですが、もちろんこんなやり方では速度も遅いし、もうそろそろ将来の事も考え始めるべきかなーとかいう
歳になってきて(しまった)ので、プログラミングを初めて4年、やっとこさプログラミングに関する本でも買おうかなーと考え始めた今日この頃です。
現代にはインターネットとかいう超便利なものがありまして、本なんぞ買わんでも十分プログラミングに関して精通した人になれるわけですが。
やはりインターネットはインターネットですから、最後までちゃんと読み進めようとか、そういう意思の強さが本などに比べて弱いのではないか(或は単純に私のやり遂げる力が無いか)
ということで、一冊か或は二冊ぐらいでも適当に買おうかなぁと思った次第です。
で、プログラミングにおいて幾つか著名な方々が書いておられる本もあるかと思うのですが、なんかあまりよく思われていない人もいるらしく...つまり初心者の私は何を買うべきなのか?
ということです。
現在、
こちらのサイト様でC++の基本を学んでいるところですが、どうもモチベーションが長い間維持できないなぁと実感しました。(たぶんネットだから?)
そのサイト様がかかれている本が「これならわかる~」シリーズを書かれている方ですが、他にも様々な方が書いていて何を買えばいいの。
「一番いいのを頼む」状態なのです。猫でもシリーズ、~の絵本シリーズ、やさしいシリーズ、明快入門シリーズ、明解シリーズ...etc
もちろん人それぞれで合う合わないとか、目的にあった本を選ぶであるとかはあるのでしょうが、どんな本買うべきかなーって、多すぎてわからん。といった状態です。
というか現段階で明確な目的があってプログラミングをしているわけでないので、「とりあえずプログラムをオブジェクト指向のスマートな...」程度の曖昧さしか無い...
悩み悩みまくってるのです。
とりあえず今度適当に一冊買ってみます。
► スポイラーを表示
今やってること。
C++において、継承先でそれぞれ別のメンバ関数を動かしたい場合最初にvirtualをつけるといいみたいだ。
また、new deleteを使ってクラスへのポインタを宣言すると、そのポインタの指す底辺クラスから継承されたクラスにおいても
同じポインタを使用することができるとかできないとか。配列とかで管理するときに便利だそうです。(まだよくわからん)
デストラクタは仮想関数にしないと正常にdeleteされないらしい。それと底辺クラスでvirtualしとけば継承先ではvirtualを記述する必要はないみたいだが、
わかりにくいし全部にvirtualしちゃう俺氏←
あとなんだか51行目と59行目が分かりにくいなぁ...と思った まる。継承先でさえprivateな変数は直接アクセスできないのか...
CODE:
#include
using namespace std;
//クラス「人」
class Hito
{
int power;
public:
//コンストラクタ
Hito(int args_power) : power(args_power){}
//デストラクタ(仮想関数)
virtual ~Hito(){}
//セッター
void set_power(int args_power){ power = args_power; }
//ゲッター
int get_power(){ return power; }
//適当なメンバ関数(仮想関数)
virtual void Aboutmyself();
};
//クラス「人」継承「侍」
class Samurai : public Hito
{
public:
Samurai(int args_power) :Hito(args_power){}
virtual ~Samurai(){}
virtual void Aboutmyself();
};
//クラス「人」継承「忍者」
class Ninja : public Hito
{
public:
Ninja(int args_power) :Hito(args_power){}
virtual ~Ninja(){}
virtual void Aboutmyself();
};
void Hito::Aboutmyself()
{
power--;
cout Aboutmyself();
for (int i = 0; i < 5; i++)
delete p[i];
return 0;
}