曲径通幽论坛

标题: 什么是返回类型协变? [打印本页]

作者: easy    时间: 2013-11-16 16:37
标题: 什么是返回类型协变?
Q: 什么是返回类型协变?

A: 一般情况下,重新定义继承的方法,应确保与原来的原型完全相同。但如果返回类型是基类引用或指针,则可以修改为指向派生类的引用或指针,这种特性被称为返回类型协变( covariance of return type ),因为允许返回类型岁类的类型变化而变化。

示例代码:
class Base {
public:
    virtual Base & build(int n)
};

class derived : public Base
{
public:
    virtual Derived & build(int n);
}

注意:这种例外只适用于返回值,而不适用于参数。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2