在 C++ 中,多态性是通过虚函数实现的。要实现类型隐藏,可以使用基类指针或引用来指向派生类对象。这里有一个简单的例子来说明如何实现类型隐藏:
#include// 基类 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()
函数,实现了多态性。同时,由于基类指针指向派生类对象,实现了类型隐藏。