Home > 2006-06 / CからC++へ > This Entry [com : 0][Tb : 0]
上の例では、クラスAを継承してクラスBを定義しています。このようにクラスを継承するときには、structやclass*1といったクラスキーとクラス名の後に、継承しようとするクラス名をコロン : で区切って記述します。上記では、struct B : A の部分がそれにあたります。struct A
{
int a;
int foo(int arg);
};
struct B : A
{
int b;
void bar();
};
であるかのように扱うことができます。また、これがちょっと難解かもしれませんが、クラスBへのポインタはクラスAへのポインタに暗黙的に型変換することができます。つまり、A*やconst A*を引数として要求している関数に、クラスBへのポインタを実引数として渡すことができるわけです。同様に、クラスAへの参照をクラスBのオブジェクトで初期化することも可能です。struct B
{
int a;
int b;
int foo(int arg);
void bar();
};
http://cppemb.blog17.fc2.com/tb.php/82-33bed418
Comment