首页 > 其他分享 >2022.01.21.类成员函数指针

2022.01.21.类成员函数指针

时间:2023-01-06 13:23:45浏览次数:47  
标签:21 子类 void cout 函数指针 父类 2022.01 指针

在继承下,允许未经转换,父类的指针可以指向子类指针

父类的指针可以指向子类对象:同意多种类型,提高复用性,扩展性

在调用继承于同一个父类的多个子类的同一个函数时,可以使用父类的指针可以指向子类对象,提高复用性,扩展性

定义函数指针

void play(){
    cout<<"play"<<endl;
}
int main(){
    void (*p_fun)=&play;
    (*p_fun)();
}
void play(){
    cout<<"play"<<endl;
}
typedef void (*P_FUN)();
int main(){
    P_FUN p_fun2=&play;
    (p_fun2)();
}

定义类成员函数指针:  ::*    C++ 整体运算符,不可分开,定义类成员函数指针,当做一个整体

使用

.* 和->*都是整体运算符,通过对象调用函数指针指向的函数

class CSon:public CFather{
public:
    void eat(){
        cout<<"CSon::eat"<<endl;
        cout<<this<<endl;
    }
};
typedef void(CSon::*P_FUN)();
int main(){
CSon son;
    CSon *pSon = new CSon;
    P_FUN p_fun1 = &CSon::eat;

    (son.*p_fun1)();
    (pSon->*p_fun1)();
    cout<<&son<<endl;
}

目的 使用父类的指针调用子类的函数

 

标签:21,子类,void,cout,函数指针,父类,2022.01,指针
From: https://www.cnblogs.com/hualuoyumufeng/p/15948053.html

相关文章

  • 2022.01.18.类之间的横向关系
    组合:部分与整体,包含与被包含有生命周期约束关系它是一种“isapartof”的关系(部分与整体)。组合是一个类中包含另一个类对象。相比聚合,组合是一种强所属关系,组合关系的两......
  • 2022.01.23.多态
    多态的缺点:1.虚函数指针在每个对象中都会存在一份,虚函数列表列表中每个类存在一份,空间问题2.效率问题3.安全性问题抽象类:包含纯虚函数的类成为抽象类,不能定义对象纯虚函......
  • 2021年中国软件供应链安全分析报告
    声明本文是学习2021年中国软件供应链安全分析报告.下载地址http://github5.com/view/1216而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们四、国内......
  • #ACM2021_23. 摘柿子 and#ACM2021_34. 幸运数字
    #ACM2021_23.摘柿子:一道很简单的排序题,估计是送分题(俺的做法:#include<stdio.h>#include<stdlib.h>#defineN100#defineM100intmain(){intn;//n为柿子个......
  • 【LeetCode2180】[Go/C++/C#/Ruby/Swift/Kotlin/Rust/PHP/TS/Racket/Dart/Java/Elixir
    [toc]题解地址https://leetcode.cn/problems/count-integers-with-even-digit-sum/solutions/2047123/by-yhm138_-w8co/lc2180代码//点击指定元素document.querySel......
  • x210-2023-01-05
    1、给交叉编译工具链创建符号链接,由于需要修改的内容比较多,所以先在windows下弄好了脚本,再共享到ubuntu会由于两个系统编码方面的问题,导致执行结果达不到想要的效果(win底下......
  • 孤独的照片【USACO 2021 December Contest Bronze】
    孤独的照片FarmerJohn最近购入了\(N\)头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一。奶牛目前排成一排,FarmerJohn想要为每个连续不少于三头奶......
  • URAL2124 - Algebra on Segment
    题意维护一个序列,支持区间乘\(x\),和查询区间的\(Span\)的大小。一个集合的\(Span\)定义为可以表示成其中若干可重复整数的乘积的数的集合。所有计算在模\(p\)意义......
  • 题解 : Luogu P2197 【模板】nim 游戏
    题目链接:link结论如果$a_1\oplusa_2\oplus...\oplusa_n\not=0$,则先手必胜证明操作到最后时,每堆石子数都是\(0\),\(0\oplus0\oplus...\oplus0=0......
  • kubeasz搭建k8s集群1.21.0
    系统版本root@harbor:~#cat/etc/issueUbuntu20.04.2LTS\n\lIP分配和集群机器配置:192.168.10.110k8s-deploy-harbor2c2g192.168.10.111k8s-master1-etcd......