• 操作符.*


    1 操作符.*即成员指针运算符  (该运算符不支持重载)

    之前讲过函数指针,你不可以像一个普通的函数指针那样指向一个成员函数,正确的做法应该是,你必须使用一个成员函数指针。一个成员函数的指针指向类中的一个成员函数,

    定义:(typedef) 返回值类型 (类名::*函数指针名)(参数列表);

    C++成员函数指针有一个可怕的限制:它们只能指向一个特定的类中的成员函数。对每一种参数的组合,需要有不同的成员函数指针类型,而且对每种使用const修饰的函数和不同类中的函数,也要有不同的函数指针类型。

    若要调用成员函数指针,你需要先建立类的一个实例,并使用特殊操作符“.*”或者“->*”,这个操作符的优先级较低,你需要将其适当地放入圆括号内。

    class A
    {
    public:
        int func(int x,int y)
        {
            printf("A::func:x=%d,y=%d/n",x,y);
            return (x<y?x:y);
        }
    };
    typedef int (A::*p)(int,int);//指针名前一定要加上所属类型类名 A::的限定
    
    int main()
    {
        p fun=A::func;//或者p fun=&A::func;
        A a; //因为成员函数地址的解引用必须要附驻与某个对象的地址,所以我们必须创建某个对象。
        cout<<"min:"<<(a.*fun)(4,5)<<endl;
        return 0;
    }
  • 相关阅读:
    js 闭包
    js 图片放大镜功能
    前端页面优化
    css 背景图片自适应分辨率大小 兼容
    纯css实现箭头
    js 排序算法
    css3 渐变 兼容
    css 兼容性总结
    css3 @keyframe 抖动/变色动画
    关于$.data(element,key,value)与ele.data.(key,value)的区别
  • 原文地址:https://www.cnblogs.com/Yogurshine/p/3914922.html
Copyright © 2020-2023  润新知