C++がなぜ以下の例のようなパラメータの共分散をサポートしないのか、それを実現する方法があるのか知りたかったのですが?パラメータのC++共分散
class base {
public:
virtual base* func(base * ptr) { return new base(); }
};
class derived : public base {
public:
virtual derived* func(derived * ptr) override { return new derived(); } //not allowed
};
もっと興味深いのは、なぜ引数の対立関係がサポートされていないのでしょうか。 –