• 关于类的成员函数数组


        C++类的成员函数数组声明与使用与普通的函数数组稍有不同:

    首先谈谈声明

        1.数组声明:int    Fun[MAX_LEN];//包含MAX_LEN个int类型元素的int型数组   

        2.指针数组:int   *Fun[MAX_LEN];//函数名其实为函数的入口地址,可以理解为指向函数所占用内存的指针,所以数组需声明为指针数组

        3.函数数组:int    (*Fun[MAX_LEN])(int, int);//函数指针数组,与普通函数指针数组相同

        4.成员函数数组:int (ClassName::*Fun[MAX_LEN])(int, int);//ClassName为类名,声明类的成员函数指针数组必须在此加上作用域限定符,不然编译时会报出一堆如:”无法从int (__thiscall ClassName::*)(int, int)转换为int (__cdecl *)(int, int)”的错误

    现在声明就完成了。再说说使用

        一般在类的构造函数中将对数组进行初始化,初始化只要注意一点就可以了。如在ClassName类中有成员函数int Add(int, int); 现将此函数放入数组中须照此:Fun[0] = &ClassName::Add;  如此处不添加作用域限定符编译将会给出如:“绑定成员函数表达式上的非法操作”的错误。

        调用:调用函数数组时须加上this-> 如 int sum = (this->*Fun[0])(2, 3);不然编译会报出如:“..操作数非法”“项不会计算为接受2个参数的函数”等错误。

  • 相关阅读:
    python调用linux DBus
    python查看单个应用的内存
    Azkaban
    H2 数据库引擎
    【IDEA与sql执行计划】
    【用draw.io 绘制ER图,非鸭蛋型ER图~】
    MySQL&Oracle数据库进阶学习【未完】
    【关于Typora 在线图床配置】
    什么是文件描述符
    同步个人vs code 习惯性配置 到码云(Gitee)
  • 原文地址:https://www.cnblogs.com/mymeng_feng/p/1938148.html
Copyright © 2020-2023  润新知