我想知道爲什麼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
};
一個更有趣的問題是爲什麼不支持參數的反差。 – 2012-08-06 02:02:30