zoukankan      html  css  js  c++  java
  • 操作符重载

    操作符->

    class ScreenPtr {
     // ...
    private:
     Screen *ptr;

    };


    // 支持指针行为的重载操作符
    class ScreenPtr {
    public:
     Screen& operator*() { return *ptr; }
     Screen* operator->() { return ptr; }
     
     //....

    };


    ps->move( 2, 3 );

         因为成员访问操作符箭头的左操作数的类型是 ScreenPtr 所以使用该类的重载操作符该操作符

    返回一个指向 Screen类对象的指针,内置成员访问操作符箭头被依次应用在这个返回值上,以调用 Screen类的成员函数 move()

    显式调用形式为:

    ps.operator->()->move(2, 3);//显式调用操作符->

    操作符++和--

    class ScreenPtr {
    public:
     Screen& operator++(); // 前置操作符
     Screen& operator- - ();
     Screen& operator++(int); // 后置操作符
     Screen& operator- - (int);
     // ...
    };

    为区分后置操作符与前置操作符的声明,重载的递增和递减后置操作符的声明有一个额外的int 类型的参数

    在实现后置操作符时不需要给出参数名,因为它没有被用在操作符定义中。

    后置操作符的显式调用要求为整型实参指定一个实际的值,显式调用而指定的实参被忽略,因为它没被用在重载操作符的定义中。

    parr.operator++(1024); // 调用后置操作符++


  • 相关阅读:
    mysql安装遇到的坑
    git pull 、git fetch、 git clone
    MD markdown入门
    Libevent:8Bufferevents高级主题
    Libevent:6辅助函数以及类型
    Libevent:5events相关
    Libevent:4event loop
    Libevent:3创建event_base
    Libevent:2设置
    Libevent:1前言
  • 原文地址:https://www.cnblogs.com/lidan/p/2239492.html
Copyright © 2011-2022 走看看