C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。下面分别进行介绍:

1.operator overloading
C++可能通过operator 重载操作符,格式如下:类型T operator 操作符 (),如比重载+,如下所示
template<typename T> class A
{
public:
     const T operator + (const T& rhs)
     {
     return this->m_ + rhs;
     }
private:
     T m_;
};

又比如STL中的函数对象,重载(),如下所示
template<typename T> struct A
{
   T operator()(const T& lhs, const T& rhs){ return lhs-rhs;}
};


2 operator casting
C++可能通过operator 重载隐式转换,格式如下: operator 类型T (),如下所示
class A
{
public:
   operator   B* () { return this->b_;}
   operator const   B* () {return this->b_;}
   operator   B& () {return *this->b_;}
private:
   B* b_;
};

A a;
当if(a),编译时,其中它转换成if(a.operator B*()),其实也就是判断 if(a.b_)

operator 用法相关推荐

  1. operator用法

    operator,美丽的重载运算符 作用就是重新定义运算符的法则 举个栗子: #include<bits/stdc++.h> using namespace std;struct Main ...

  2. operator的两种用法

    C++ operator两种用法 C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).下面分别 ...

  3. 记录一下从标定模型中读取参数

    HALCON中的算子就是这个: get_calib_data (Operator) 用法如下: get_calib_data( : : CalibDataID, ItemType, ItemIdx, ...

  4. openmp 互斥锁 mysql_openMP 函数总结(并行程序设计导论)

    本篇文章只是记录api的用法和回顾,方便记忆 openMP openMP提供"基于指令"的共享内存API.这就意味着在c和c++中,有一些特殊的预处理指令pragma.在系统中加入 ...

  5. (六)boost库之内存管理shared_ptr

    1.shared_ptr的基本用法 boost::shared_ptr<int> sp(new int(10)); //一个指向整数的shared_ptr assert(sp.unique ...

  6. oracle c op,ORACLE中内部函数SYS_OP_C2C和隐式类型转换

    什么是SYS_OP_C2C呢?官方的介绍如下: SYS_OP_C2C is an internal function which does an implicit conversion of varc ...

  7. C++ operator两种用法【转】

    C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).下面分别进行介绍: 1.operator ...

  8. C++中operator的两种用法

    首先声明,转载自:http://blog.csdn.net/skdkjzz/article/details/45872801 转换函数的名称是类型转换的目标类型,因此,不必再为它指定返回值类型:转换函 ...

  9. c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast...

    C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换.对于操作符的重载,许多人都不陌生,但是估计不少人都不太熟悉operator的第二种用法,即自定义对象类型的隐式 ...

最新文章

  1. matlab中阈值计算方法,三种阈值计算方法在MatLab6.5中的实现
  2. oracle left join优化
  3. JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(推荐七)
  4. python 中使用celery
  5. 关于计算机专业的作文800字,我的电脑作文800字范文
  6. 会议更流畅,表情更生动!视频生成编码 VS 国际最新 VVC 标准
  7. IntelliJ IDEA 问题总结之二 —— 快捷键、主题样式、导出jar、sqlite
  8. 如何部署 OB 社区版
  9. qzone.class.php,[宜配屋]听图阁
  10. 服务器监控页面html_Nmon实时监控并生成HTML监控报告
  11. 110+优秀作品、20+热门领域曝光, 高通如何玩转“AI 的夏天”!
  12. 用模板类实现shared_ptr和unique_ptr
  13. Python进阶(一)Python中的内置函数、内置方法、私有属性和方法详解
  14. jenkins JDK的集成
  15. centos6 系统安装 system-config-kickstart 工具
  16. 自然语言处理5:jieba分词详解全模式,精确模式和搜索引擎模式
  17. Adobe PDF打不开文件的一个解决办法
  18. dnf全部使用_DNF所有职业通用的CD配装分享 技能无限制使用
  19. ASICC码对照表整理
  20. (五)DDR协议命令波形时序二——(Precharge、Refresh、Self Refresh、Power Down)

热门文章

  1. UIKeyboardTypeNumberPad和丢失的return键
  2. python取得两个文件的交集、并集和差集。
  3. ubuntu1604安装sougou输入法
  4. 用CentOS 7打造合适的科研环境 :zhuan
  5. 你还不清楚某个系统文件的作用吗?Windows系统文件详解【大全】
  6. 高精度三维扫描仪用于医疗器械注塑件尺寸公差测量
  7. nutz dao 操作
  8. 对地球生命的来源持有怀疑
  9. 【xmind 2021-2022,文件丢失-软件异常-历史版本找回】
  10. STM32双轴摇杆控制空心杯电机