基底クラスと派生クラスに同じ名前の関数がある場合、 パラメータの数が同じでも異なっていても、サブクラス オブジェクトは常に同じ名前の関数を直接呼び出します。派生クラス。基底クラスと同じ名前の関数を呼び出したい場合は、基底クラスのポインターまたは参照を使用する必要があります。同じ呼び出し形式を使用したい場合は、派生クラスの関数実装バージョンまたは基本クラスの実装バージョンを呼び出すことができます。仮想関数を使用する必要があります ただし、先生は関数のみを使用すると言いましたプロトタイプは仮想関数として宣言できるため、
仮パラメータの数や型が異なる同じ名前の関数に対して、上記の関数を実装するにはどうすればよいでしょうか?
次のように定義し、必要に応じてサブクラスで再定義できます:
リーリー この問題の根本は、C++ が関数の名前とパラメーターを認識する方法にあります。そのため、両方を明確に定義する必要があります。たとえば、サブクラスの copy 関数は返すことができます。サブクラス。