親クラスからメソッドを継承するときに、ヘッダーファイルに関数を宣言する必要があるときを理解しようとしています。適切なヘッダーファイルの構文
class parent{
public:
virtual void foo()= 0;
}
は私が親から継承した子クラスを考えてみましょう私も子供のヘッダファイルにFOOを宣言しなければならないのか、私は単純にメソッドを定義することができます。たとえば
は、私は以下のクラスを持って言うことができます子供のためのソースファイルに?
以下の記載が間違っていますか?
HEADERFILE:
class child : public parent{
}
クラスファイル:
child::foo(){
// do something
}
'foo'は' virtual'と宣言する必要があります。それとは別に 'foo'をオーバーライドしている場合(それは純粋な仮想であるため、あなたはすべてを必要とします)、クラス定義の一部として子クラスで宣言する必要があります。 – cHao
'foo()'も 'public'と宣言しなければなりません。さもなければ' parent'から継承したクラスにはアクセスできません。 –
C++は実際にはプライベート仮想関数を許可します(さらにそれらをオーバーライドすることもできます)。通常は、派生クラスに、インタフェースの一部となることなく、ベースクラスが期待するいくつかの機能を指定できるようにすることです。 – cHao