Linux C++中多态性如何实现
作者:水悠悠予安
时间:2026-07-01
浏览:0
C++多态性通过虚函数与继承实现:基类声明虚函数,派生类重写。使用基类指针或引用调用时,实际执行对应派生类版本,此为运行期多态与动态绑定,使同一接口表现出不同行为。
C++ 的多态性,说白了,就是让同一个接口能表现出不同的行为。这件事,在 C++ 里靠的是虚函数和继承这对搭档。基类先声明一个虚函数,派生类再把它重写一遍,然后你用基类的指针或引用去调它——调的是谁,跑的就是谁。听起来很神奇?其实核心步骤就那么几条,下面一个个拆开说。

第一步,搭个基类,在里面声明虚函数。虚函数就是用 virtual 关键字修饰的成员函数,它给了派生类一个“改写”的机会。
class Base {
public:
virtual void print() {
cout << "Base class print function" << endl;
}
};
第二步,搞几个派生类,把基类里的虚函数重新实现一遍。注意,函数签名必须一致,最好加上 override 让编译器帮你检查。
class Derived1 : public Base {
public:
void print() override {
cout << "Derived1 class print function" << endl;
}
};
class Derived2 : public Base {
public:
void print() override {
cout << "Derived2 class print function" << endl;
}
};
第三步,也是最关键的一步——用基类的指针或引用去操作派生类对象。这时候你虽然拿的是基类类型的“把手”,但实际指向的是派生类对象。通过这个指针调用虚函数,C++ 会在运行时根据对象的真实类型去派发调用。
int main() {
Base *basePtr;
Derived1 derived1;
Derived2 derived2;
basePtr = &derived1;
basePtr->print(); // 输出 "Derived1 class print function"
basePtr = &derived2;
basePtr->print(); // 输出 "Derived2 class print function"
return 0;
}
你看,同一个 basePtr,指向不同的派生类对象,调出的结果却不同。这就是多态性最直观的体现——用基类接口,执行派生类行为。理解了这个机制,后面再遇到虚函数表、动态绑定的概念,就不会觉得那么抽象了。
作者最新文章
灵活计算器
2026-09-16 17:45
苹果折叠屏iPhone预计售价是多少
2026-09-14 13:44
OpenAI GPT-6 Astra 自主通关《传送门》:技术原理与实验成本解析
2026-09-08 19:08
苹果与铠侠签署NAND长期供应协议:3-5年长约与不设价格上限背后的供应链战略
2026-09-08 16:58
PDF转PPT操作指南:在线、本地与批量转换及结果核对
2026-09-04 15:04
上一篇:
Linux系统里C++如何进行数据加密
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































