首页 > 编程语言 >C++ 多态 超详细讲解

C++ 多态 超详细讲解

时间:2024-02-22 13:33:46浏览次数:32  
标签:函数 讲解 多态 C++ 基类 买票

C++ 多态 超详细讲解

多态概念引入

多态字面意思就是多种形态。
我们先来想一想在日常生活中的多态例子:买票时,成人买票全价,如果是学生那么半价,如果是军人,就可以优先买票。不同的人买票会有不同的实现方法,这就是多态。

1、C++中多态的实现

1.1 多态的构成条件

C++的多态必须满足两个条件:
1 必须通过基类的指针或者引用调用虚函数
2 被调用的函数是虚函数,且必须完成对基类虚函数的重写
我们来看看具体实现。

 

 

 

 

 

本文转自:https://blog.csdn.net/qq_53558968/article/details/116886784

标签:函数,讲解,多态,C++,基类,买票
From: https://www.cnblogs.com/Jack-Elvis/p/18027137

相关文章

  • C++ constexpr
    C++constexpr比如我有一个函数,返回10intget10(){return10;}我想拿去初始化数组大小intarraynum[get10()];编译器会报错,因为会说只能用常量去初始化,所以我们可以用constexpr,把函数改成常量表达式,这样编译器在编译阶段就知道了常量。再比如一个可变参函数模板,我想......
  • C++ STL 容器-string类型
    C++STL第一部分-容器STL的介绍C++的STL分为六大部分容器分为String容器例子1std::stringstr1,str2,str3,str4;str1.assign("abcd");//给str1赋值abcdstr2.assign("abcd",3);//获取abcd中的3个,从0到2str3.assign(str1);//获取str1//注意str3()和str3.a......
  • C++ 第二节课 结构体, 字符串 和 C语言的区分
    1#include<iostream>23usingnamespacestd;456//结构体7structStu{8stringname;9intage;1011//结构体重的函数叫做成员函数在C中是不能直接写函数的只能使用函数指针,通过指针的回调出发函数(行为)12//默认的修饰符......
  • 4.3 提升题 - A One Way In, Two Ways OutC++
    就是让你判断输入受限的双端队列的输出的正确性。其实就是模拟双端队列出队的过程,要不左边出队,要不右边出队,而入队已经一定了。用一个数组模拟输入受限的双端队列就行了。但是写这题可太难受了,写了我大概2个半小时,各种各种小错误,没考虑周全的地方。#include<iostream>using......
  • C++内存管理
    C++内存管理目录C++内存管理内存模型堆与栈的区别其他说明new和deletemalloc/free和new/delete区别new运算符的原理new/delete的使用要点判断内存申请成功delete与delete[]区别参考资料内存模型内存类型作用生命周期常量存储区存放常量,不允许修改全局/静态存储......
  • C++智能指针
    C++智能指针目录C++智能指针unique_ptr简单示例构造方法释放和重置shared_ptr构造方法常用函数构造重置和析构获得原始指针注意事项weak_ptr构造方法常用函数解决循环引用参考资料在C++中,内存的分配和释放都是由开发者手动实现的。这种方式虽然很灵活,但也十分容易出错,比如忘记释......
  • C++ 第一节课 名字空间 ,输入输出函数,和 C 语言的区别
    #include<iostream>//#include头文件,C++标准库的头文件都不带.h(.h是C库头文件添加的)#include<cstdio>#include<cstring>usingnamespacestd;//namespace命名空间为了防止变量名字冲突//命名空间中定义自己的变量或函数或类,都是独立的//所有的命名空......
  • 49. 字母异位词分组c++
    刷力扣还有点不太习惯,主要是C++只学了皮毛。看了官方活用map就是好啊。把字母都排好序然后判断就好了。map<string,vector<string>>m;for(inti=0;i<strs.size();i++){stringtem=strs[i];sort(tem.begin(),tem.end());......
  • 【C++】编写一个具有老式风格接口的函数,其原型如下:int reduce(long arr[], int n)。实
    #include<iostream>#include<string>usingnamespacestd;intreduce(longarr[],intn){sort(arr,arr+n);autostr=unique(arr,arr+n);returnstr-arr;}intmain(){longarr[10]={15,8,5,6,11,11,6,6,198,50};......
  • c++类开发的第三篇(讲明白友元函数和this指针)
    friend_function成员变量和函数的存储c++实现了封装,数据和处理数据的操作(函数)是分开存储的。c++中的非静态数据成员直接内含在类对象中,就像c语言的struct一样。成员函数并不会出现在对象中,而是作为类的一部分存储在代码段中,需要通过对象或对象指针进行调用。成员函数可......