我想知道为什么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
};
Run Code Online (Sandbox Code Playgroud)