多态性之编译期多态和运行期多态(C++版)

本文介绍了C++中的多态性,包括编译期多态(静态多态)和运行期多态(动态多态),详细阐述了两种多态的工作原理和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多态性之编译期多态和运行期多态(C++版)


    C++中最为经典的就是多态性,多态性充分体现了面向对象的思想,并且是C++与C的最大区别之一。多态性分为编译期多态和运行期多态,也称为静态多态和动态多态,有些人也称其为编译时多态和运行时多态,不管什么称呼,万变不离其宗,一个是编译期的静态的多态,一个是运行期的动态的多态,那么它们在C++中分别体现在哪里呢?又有什么区别呢?下面将详细介绍(重点是运行期多态)。

    1. 编译期多态(静态多态)


    编译期多态,正如其名,就是在编译期确定的一种多态性。这个在C++中主要体现在函数模板,这里需要注意的是函数重载和多态无关,很多地方把函数重载也误认为是编译期多态,这是错误的。

     那么函数模板是如何体现编译期多态的呢?下面举一个简单的例子就可以明白。

// 例1:函数模板体现出编译期多态
#include <iostream>

template <typename T>
T add(T a, T b)
{
	T c = a + b;
	return c;
}

int main()
{
	int i1 = 1;
	int i2 = 2;
	int iResult = 0;

	iResult = add(i1, i2);
	std::cout << "The result of integer is " << iResult << std::endl;

	double d1 = 1.
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值