はすべての時間を私は今、C++、OO側を学んでいる、と私はこれを得た:仮想の間のC++の差= 0;そして空の関数
class SomeClass{
virtual void aMethod()=0;
}
class AnotherClass{
void anotherMethod(){/*Empty*/}
}
class SomeClassSon : public SomeClass{
void aMethod(){/*Also Empty*/}
}
私の疑いがある:3つの方法の違いは何ですか。仮想はゼロ、空の仮想、仮想は継承されているため空です。
は、なぜ私は父のようSomeClassSonメソッドを作成することはできません(仮想ボイドはゼロに等しい?)
'SomeClass s; s.aMethod() 'は有効な呼び出しではありません。 – andre
違いは、基本クラスの '= 0'では、すべての派生クラス*がメソッドを実装しなければならないということです。 –
@DavidSchwartz - クラスがインスタンス化されている場合*関数を実装する必要があります*。関数が実装されていない場合、クラスは抽象クラスです。 –