admin管理员组

文章数量:1033497

【C++ 多态】—— 礼器九鼎,釉下乾坤,多态中的 “风水寻龙诀“

多态的概念

众所周知,面向对象有三大特性,封装、继承和多态!

多态(Polymorphism) 是面向对象编程的核心特性,允许用统一的接口操作不同类型的对象,并根据对象实际类型执行不同的行为。C++中的多态分为编译时多态和运行时多态。

编译时多态(静态多态)

编译时多态(Compile-Time Polymorphism) 又称为 静态多态,是一种在 代码编译阶段就能确定具体调用行为的机制。它的核心特点是 基于静态类型系统,通过代码结构直接决定调用哪个函数或操作,无需运行时动态查找。

编译时多态的实现方式有,函数重载,运算符重载和模板。
函数重载 Function Overloading
  • 通过 参数列表不同(类型/数量/顺序)定义同名函数

示例:

代码语言:javascript代码运行次数:0运行复制
void print(int x)
{
    std::cout << "int: " << x << std::endl;
}
void print(double x)
{
    std::cout << "double: " << x << std::endl;
}
void print(const char *s)
{
    std::cout << "const char *: " << s << std::endl;
}

调用策略:

代码语言:javascript代码运行次数:0运行复制
int main()
{
    print(10);      // 调用 print(int)
    print(3.14);    // 调用 print(double)
    print("Hello"); // 调用 print(const char*)
}

输出:

代码语言:javascript代码运行次数:0运行复制
int: 10
double: 3.14
const char *: Hello

有关函数重载的原理及应用不再过多说明,详见博文

【C++ 多态】—— 礼器九鼎,釉下乾坤,多态中的 “风水寻龙诀“

多态的概念

众所周知,面向对象有三大特性,封装、继承和多态!

多态(Polymorphism) 是面向对象编程的核心特性,允许用统一的接口操作不同类型的对象,并根据对象实际类型执行不同的行为。C++中的多态分为编译时多态和运行时多态。

编译时多态(静态多态)

编译时多态(Compile-Time Polymorphism) 又称为 静态多态,是一种在 代码编译阶段就能确定具体调用行为的机制。它的核心特点是 基于静态类型系统,通过代码结构直接决定调用哪个函数或操作,无需运行时动态查找。

编译时多态的实现方式有,函数重载,运算符重载和模板。
函数重载 Function Overloading
  • 通过 参数列表不同(类型/数量/顺序)定义同名函数

示例:

代码语言:javascript代码运行次数:0运行复制
void print(int x)
{
    std::cout << "int: " << x << std::endl;
}
void print(double x)
{
    std::cout << "double: " << x << std::endl;
}
void print(const char *s)
{
    std::cout << "const char *: " << s << std::endl;
}

调用策略:

代码语言:javascript代码运行次数:0运行复制
int main()
{
    print(10);      // 调用 print(int)
    print(3.14);    // 调用 print(double)
    print("Hello"); // 调用 print(const char*)
}

输出:

代码语言:javascript代码运行次数:0运行复制
int: 10
double: 3.14
const char *: Hello

有关函数重载的原理及应用不再过多说明,详见博文

本文标签: C 多态 礼器九鼎,釉下乾坤,多态中的 “风水寻龙诀“