c++协变的用法
C++中的协变(covariance)是指指针或引用类型的派生类对象可以指向基类对象,并且可以通过该指针或引用访问派生类的成员。
在C++中,协变的用法主要涉及到虚函数和多态性。当一个基类指针指向一个派生类对象时,通过该指针调用虚函数时,会根据实际的对象类型来调用相应的派生类的实现。这种特性称为多态性。
下面是一个简单的示例代码,演示了C++中协变的用法:
```cpp
#include <iostream>
class Base {
public:
    virtual void print() const {
        std::cout << "Base class" << std::endl;
    }
};
class Derived : public Base {
public:
    void print() const override {
        std::cout << "Derived class" << std::endl;
    }
};
int main() {
指针调用成员函数    Base* basePtr = new Derived(); // 基类指针指向派生类对象
    basePtr->print(); // 调用虚函数,输出 "Derived class"
    delete basePtr;
    return 0;
}
```
在上面的代码中,`Base`是基类,`Derived`是派生自`Base`的派生类。`Base`类中定义了一个虚函数`print()`,而`Derived`类重写了该函数。在`main()`函数中,我们创建了一个`Base`类型的指针`basePtr`,并将其指向一个`Derived`类的对象。然后通过`basePtr`调用`print()`函数,由于`Derived`类重写了该函数,因此会输出"Derived class"。这就是协变的用法。