美文网首页
【C++面向对象备忘录】3 运算符重载

【C++面向对象备忘录】3 运算符重载

作者: shawn233 | 来源:发表于2018-02-27 17:18 被阅读0次

赋值运算符

赋值运算符只能重载成成员函数
函数原型:

X & X::operator=(const X &source)
{
if (this == &source)
    return * this; //如果是自我复制,直接返回本身
// 赋值过程
}
  • 返回引用是为了避免拷贝构造拖慢程序;
  • 第一个判断是为自我复制时节约时间。

下标运算符

  • 下标运算符必须重载成成员函数;
  • 下标运算符是二元运算符,第一个运算数是数组名,第二个运算数是下标值。因此作为成员函数只有一个参数,即下标。

函数调用运算符

  • 函数调用运算符( )是一个二元运算符。它的第一个运算对象是函数名,第二个参数是形式参数表。运算的结果是函数的返回值。
  • 一个类重载了函数调用运算符,就可以把这个类的对象当做函数来使用
  • 函数调用运算符必须重载成成员函数
  • 函数调用运算符重载函数的原型为
函数的返回值 operator() (形式参数表);

++、--的重载

  • 成员函数重载
    ++ob重载为:ob.operator++()
    ob--重载为:ob.operator--(int)
  • 友元函数重载
    ++ob重载为:operator++(X &ob)
    ob--重载为:operator--(X &ob, int)
  • 调用时,参数int一般传递值0。

输入输出运算符重载

输出运算符(<<)重载原型

ostream & operator<<(ostream &  os, const ClassType &obj)
{ os << 要输出的内容;
  //只进行最小限度格式化,由用户控制输出细节,不应输出换行符
  return os;
} 

输入运算符重载的原型

istream & operator>>(istream & is,  ClassType &obj)
{ is >> 要输入的内容;
  return is;
} 

相关文章

  • 【C++面向对象备忘录】3 运算符重载

    赋值运算符 赋值运算符只能重载成成员函数函数原型: 返回引用是为了避免拷贝构造拖慢程序; 第一个判断是为自我复制时...

  • C++运算符重载-下篇 (Boolan)

    C++运算符重载-下篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++运算符重载-上篇 (Boolan)

    C++运算符重载-上篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • 清华毕业扫地僧,深入讲解Java基础+高级进阶300集,总计15

    前言 Java继承了C++语言面向对象技术的核心,又舍弃了C++语言中的指针、运算符重载以及多重继承的特性,同时引...

  • C++面向对象继承与操作符重载

    1.类外运算符重载。 2.类里运算符重载。 3.括号运算符。 4.C++对象继承。 C++多继承 会出现二义性 处...

  • 运算符重载与友元函数

    运算符重载 C++允许将运算符重载到用户定义的类型,例如,使用+将两个类对象相加。 重载运算符要使用运算符函数: ...

  • 1.2.18_C++ 赋值运算符重载

    C++ 重载运算符和重载函数 就像其他运算符一样,您可以重载赋值运算符( = ),用于创建一个对象,比如拷贝构造函...

  • 1.2.19_C++ 函数调用运算符 () 重载

    C++ 重载运算符和重载函数 函数调用运算符 () 可以被重载用于类的对象。当重载 () 时,您不是创造了一种新的...

  • C++基础笔记01

    强类型语言,类型检查严格支持面向对象,泛型,异常(打游戏可不能异常),运算符重载 C++文件后缀可以是 .cpp,...

  • 第十一章 使用类

    运算符重载 运算符重载是一种形式的C++多态。运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。...

网友评论

      本文标题:【C++面向对象备忘录】3 运算符重载

      本文链接:https://www.haomeiwen.com/subject/nzymxftx.html