zoukankan      html  css  js  c++  java
  • 【算法•日更•第五十四期】知识扫盲:什么是operator?

    ▎前言

      这个东西和迭代器长的很像,但是比迭代器常见的多。

      今天就来浅谈operator。

    ▎定义

      operator是C#、C++和pascal的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。

    这是C++pascal扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。

      在symbian os c++中,返回const TUint&给描述符数据的一个指定的单个数据项。使用operator[]在描述符上循环的代价是昂贵的;替代的方法是考虑使用C++算数指针和TDesc::Ptr()。
      operator在.Net中的应用,在.Net中自身的状态机制都有现成的操作集合的范本,像 需要Add +=;需要Rmove -= [1]  重载操作的时候,更“不拘一格”;(copy自百度百科)
      相信你也大概知道了,operator处理的是运算符,标准术语叫重载运算符。
    ▎为什么要用operator?
    • 因为C++提供的运算符只支持标准运算符的运算
    • 利用operator可以重新定义运算符
    • 多用于结构体
    ▎怎么使用operator?
      这个简单,直接呈上模板:
    返回类型 operator运算符(参数)
    {
            return 返回的内容;
    }

      例如:

      node是自定义的结构体的类型。

    int operator+(node x)
    {
        return x.a+x.b;
    }
  • 相关阅读:
    【NOIP2006T】作业调度方案
    「NOIP2012P」寻宝
    51Nod1084 矩阵取数问题 V2
    51Nod1294 修改数组
    51nod1122 机器人走方格V4
    多项式相关模板#1
    51Nod1514 美妙的序列
    Jzoj5674 香槟
    Jzoj5669 排列
    Jzoj5665 奥立卡的诗
  • 原文地址:https://www.cnblogs.com/TFLS-gzr/p/11394422.html
Copyright © 2011-2022 走看看