zoukankan      html  css  js  c++  java
  • 增量操作符和流操作符的重载

          ++增量互有前增量和后增量区别,重载操作符时,虽然函数名相同,但是应有相应的区别.对于一个整型变量前增量操作符的结果与返回值变量是一致的,而后增量操作符返回的是一个临时变量。于是在增量操作符重载时也需要有前增量与后增量的区分。

       前增量操作对象与返回对象是同一个变量,在反应对象的前增量操作时,要求参数为对象的引用,返回值也是对象的引用:

    className& operator++() ;//前增量操作符设置为类成员函数

     friend className& operator++(className&a) ;//前增量符作符设置为类友元函数。

    而后增量符同样要求参数为引用,因为在调用上下中实参发生啦改变,但是为了与前增量符有所区别,C++提供了一个技术处理:

      className operator++(int ) ;//后量操作符设置为类成员函数

     friend className operator++(className &a,int i);  //友元函数,调用后增量符违背了函数参数匹配的常规,但是编译器专门做了特殊处理。

         对于流操作符。由于流操作符前置对象参数为ostream&out,它不是该类的对象,所以不可以设置为类的成员函数,必须设置为友元函数,友元函数不是类的成员函数,但是他的特殊之处在于他可以访问类的私有成员。所以有关流的操作符重载必须声明为友元函数,如 friend ostream& operator(className&a);

  • 相关阅读:
    Mecanim分析
    Mecanim 动作复用示例
    Unity3D FPS帧数修改
    Unity游戏暂停之Update与FixedUpdate区别
    我对程序开发流程的理解
    Zygote进程【1】——Zygote的诞生
    Android之SDK、NDK、JNI和so文件
    Android的4种文件类型Java,class,dex,apk
    android系统架构解析
    Android ART运行时与Dalvik虚拟机
  • 原文地址:https://www.cnblogs.com/td15980891505/p/5085777.html
Copyright © 2011-2022 走看看