c++中多态的理解

本文探讨了C++中的多态性,包括编译时和运行时两种类型。编译时多态通过非虚成员的参数和返回值实现,而运行时多态依赖于虚函数的覆写。文中提供了一个运行时多态的实例,强调了使用基类引用的重要性。
摘要由CSDN通过智能技术生成

多态的定义:同一种操作作用于不同的对象,有不同的解释,产生不同的结果。

c++中的多态分为两类:

1.编译时的多态:类中非虚成员的参数和返回值,确定不同的操作。

2.运行时的多态:到程序的运行的时候,才根据实际情况决定实现何种操作。派生类继承并覆写基类的虚函数成员。

以下是运行时多态的一个简单示例:

#include "stdafx.h"
#include <iostream>
#pragma warning(disable:4996)
#include <string>

using namespace std;

class base{
public:
	virtual void print(void){
		cout << "this is base" << endl;
	}
};

class child1:public base
{
public:
	virtual void print(void){
		cout << "this is child1" << endl;
	}
};


class child2:public base
{
public:
	virtual void print(void){
		cout << "this is child2" << endl;
	}
};

void fun(base &para)
{
	para.print();
}

int main(int argc, char *argv[])
{
	base test;
	child1 a;
	child2 b;
	cout << "*************************************" << endl;
	fun(test);/
C++多态性具有静态多态和动态多态两个阶段。在编译时多态阶段,多态性体现在函数重载和泛型编程方面。通过函数重载,可以使用相同的函数名但不同的参数来重载出不同的函数,这是静态多态性的一种表现。编译器会根据函数的不同参数将其绑定到特定的形式上。在动态多态阶段,多态性体现在运行时,具体引用的接口在程序运行时才能确定,这是动态多态性的一种表现。多态的字面意思就是多种状态,在面向对象的程序设计,一个接口可以有多种实现方式。C++通过继承、多态虚函数等机制来实现多态的概念。因此,C++多态性使得程序可以根据具体的对象类型来调用相应的方法或函数,从而提高代码的灵活性和可复用性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C++面试题总结之基础知识点](https://blog.csdn.net/weixin_42060900/article/details/96503788)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [C++多态理解](https://blog.csdn.net/weixin_44244332/article/details/123507232)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值