在 C++ 中,多态性是通过虚函数实现的。要实现类型隐藏,可以使用基类指针或引用来指向派生类对象。这里有一个简单的例子来说明如何实现类型隐藏:
#include <iostream>
// 基类 Shape
class Shape {
public:
// 虚函数 area()
virtual double area() const {
return 0.0;
}
};
// 派生类 Circle,继承自 Shape
class Circle : public Shape {
public:
Circle(double radius) : radius_(radius) {}
// 重写基类的虚函数 area()
double area() const override {
return 3.14159 * radius_ * radius_;
}
private:
double radius_;
};
int main() {
// 使用基类指针指向派生类对象
Shape* shape = new Circle(5.0);
// 调用虚函数 area(),实现多态性
std::cout << "Area: " << shape->area() << std::endl;
delete shape; // 释放内存
return 0;
}
在这个例子中,我们定义了一个基类 Shape
和一个派生类 Circle
。Circle
类继承自 Shape
类,并重写了基类的虚函数 area()
。在 main()
函数中,我们使用基类指针 shape
指向派生类对象 Circle
。当我们调用 shape->area()
时,C++ 会根据对象的实际类型(这里是 Circle
)来调用相应的 area()
函数,实现了多态性。同时,由于基类指针指向派生类对象,实现了类型隐藏。