zoukankan      html  css  js  c++  java
  • 操作符.*

    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;
    }
  • 相关阅读:
    ajax同步和异步
    vue组件
    type of的返回值有哪些
    git配置
    vue 获取时间戳对象转换为日期格式
    JavaScript运行机制
    单页面开发首屏加载慢,白屏如何解决
    单页面和多页面开发的优缺点
    【安全测试】sql注入
    【Python学习一】使用Python+selenium实现第一个自动化测试脚本
  • 原文地址:https://www.cnblogs.com/Yogurshine/p/3914922.html
Copyright © 2011-2022 走看看