class Base {
public:
void foo() const {
std::cout << "foo const" << std::endl;
}
};
class Derived : public Base {
public:
void foo() {
std::cout << "foo"<< std::endl;
}
}
foo()constがBase用に正しく隠されていることを確認します。確かにこれは悪い考えです。おそらくBase :: foo()constをDervied :: foo()が正しくオーバーライドするようにする必要があります。—ですが、Base :: foo()を純粋に作ることはできませんバーチャル。 Base :: foo()constがDerivedで正しく隠されていることを確認する良い方法はありますか?C++の派生クラスのメソッドをオーバーライド(非表示)する方法を教えてください。
編集:Derivedで、基本実装が正しく隠されていることを確認します。
"正しく隠されている"とはどういう意味ですか?関数がオーバーライドされているか、または隠されています。両方にすることはできません。 –
c#overrideキーワードと同じ動作をさせる方法があるかどうか尋ねていますか?この優れたキーワードは、関数が実際に何かをオーバーライドしていることを保証します。関数のシグネチャの違いのために意図したときに、C++で何かをオーバーライドしないのは簡単な間違いです。 – markh44
「隠されている」とは、公開されていないことを意味しますか? – zooropa