1:クラスを家に見立てる
第1回目は、「これを使わずC++というなかれ」と言っても過言ではない「クラス」の基本について解説します。C++のクラスは端的に言えば「構造体にアクセス制限と関数がプラスされた」ようなものです。クラスを「家」に見立てると、わかりやすいかもしれません。まずはこちらのコードをご覧ください。
class CEnemy
{
private:
int hitpoint;
float x, y;
public:
void SetPosition(float x, float y);
void SetHitpoint(int p);
};
void Cenemy::SetPosition(float pos_x, float pos_y)
{
this->x = pos_x;
this->y = pos_y;
}
void Cenemy::SetHitpoint(int val)
{
this->p = val;
}
class
で、ここから先の中括弧({})でくくられた部分がクラスの内容であることを宣言します。ちなみに中括弧で閉じるときは「;」の記号を忘れずに。JavaやC#でのコーディングになれてしまうとついつい記入漏れを起こしがちです。
3行目にある
private
は、ここから先にある変数・関数はプライベートな情報であることを表します。プライベートですから、家の中にいる人しか中身を知ることはできません。例えば、13~14行目ではprivate属性であるxとyに値が直接代入されていますが、これは、CEnemy家の内にいる関数「SetPosition」が手に取っているから可能なのであり、
void main()
{
CEnemy enemy;
enemy.x = 150;
}
private
属性にしてしまいましょう。
public
は、ここから先の変数・関数が、パブリック、つまり「みんなに触ってもらってもかまわない」内容であることを宣言します。「1.cpp」のばあいは、「SetPosition」と「SetHitpoint」がそれにあたり、これらは家の外の人でも自由に接触できるので、
void main()
{
CEnemy enemy;
enemy.SetHitpoint(150);
}