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);

  • 相关阅读:
    Hello World
    查找字符串 fiand
    stdou,write与print()
    python 中 按位 与 & ,| ,^ ,~,
    3*3元素主对角元素之和
    Python random() 函数
    文本颜色设计
    if __name__=="__main__
    join函数
    ProGAN论文的翻译+学习体会
  • 原文地址:https://www.cnblogs.com/td15980891505/p/5085777.html
Copyright © 2011-2022 走看看