- 4
- 0
- 约1.25万字
- 约 56页
- 2018-02-18 发布于浙江
- 举报
[工学]第十章运算符重载
* * * * * * class weight { public: weight(int v=0):value(v) {} //运算符前置自增 weight operator ++(); //运算符后置自增 weight operator ++(int); void print() { coutvalueendl; } private: int value; }; //前增量 weight weight::operator ++() { value++; return *this; } //后增量 weight weight::operator ++(int) { weight temp(*this); //操作数保存为临时对象 value++; //操作数加1 return temp; //返回没有加1的临时对象 } void main() { weight s1(1),s2; s1.print(); s2=s1++; s2.print(); s1.print(); (++s1).print(); } 1 1 2 3 说明 因为重载函数只能从形式参数上加以区别。 1、运算符前置自增运算符 用成员函数实现时,没有形式参数。 2、运算符后置自增运算符 另外增加一个形式上的形式参数,类型定为int。这个参数只是用来区别两种自增算符,并不参加实际的运算。 简单练习 创建Piont类,有数据成员X和Y,重载++和--,要求同时重载前缀方式和后缀方式。 练习 创建一个功能更强大的类似数组类Array(先考虑类似存放int的数组类),它能够进行范围检查,从而能确保数组下标保持在有效范围内。这个类允许通过=运算符将一个数组类对象赋给另一个对象。而且可以用==和!=进行比较。 class Array { public: Array( int = 10 ); Array( const Array ); ~Array(); int getSize() const; const Array operator=( const Array ); bool operator==( const Array ) const; bool operator!=( const Array right ) const { return ! ( *this == right ); } int operator[]( int ); int operator[]( int ) const; private: int size; int *ptr; }; 运算符重载为友元函数形式 运算符重载函数可以定义为友元函数的形式,格式如下: 返回值类型 operator op (参数表) { 相对于该类而定义的操作(运算符重载函数体) } 单目运算符重载,参数表中只有一个形参数; 双目运算符重载,参数表中有两个形参数。 运算符重载为成员函数和友元函数形式的主要区别在于前者有this 指针,后者无this 指针。 运算符重载为友元函数形式 注意:友元函数重载运算符调用方式 @表示要重载的运算符 二元运算符 显示:operator@(对象名1,对象名2) 隐式:对象名1@对象名2 一元运算符 显示:operator@(对象名) 隐式:@对象名 或者 对象名@ 运算符重载为友元函数形式 说明: 重载为友元函数,比如“+”,操作数都由形参给出,通过运算符重载的函数进行传递。并且运算结果的类型与操作数的类型一致。 重载运算符的操作中,无论重载为成员函数还是友元函数,其形参多为引用类型,目的是增加可读性,提高程序的运行效率,因为使用引用类型,在进行参数传递的过程中,不需要复制临时对象。 #include iostream using namespace std; class String {public: String( ){p=NULL;} String(char *str); friend bool operator(String string1,String stri
您可能关注的文档
- [工学]第八章 数模和模数转换.ppt
- [工学]第八章 电力拖动系统动力学基础.ppt
- [工学]第八章 电气安全、接地与防雷.ppt
- [工学]第八章 热辐射基本定律和辐射特性.ppt
- [工学]第八章 矩阵位移法8.ppt
- [工学]第八章 真空中的静电场改.ppt
- [工学]第八章 带传动和链传动.ppt
- [工学]第八章 结构体.ppt
- [工学]第八章 网络操作系统.ppt
- [工学]第八章++并行通信和串行通信.ppt
- 2025-2026学年科普版七年级下册英语Unit7 Being a Smart Shopper素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit10 Lending a Helping Hand素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit11 Rules Matter素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit12 Better Together素养测评卷(含答案).docx
- 2026年中考英语语法选择专题训练(含答案).docx
- 2026中考语文二轮学思并重,涵养君子之德论语十二章、虽有佳肴、大道之行也.docx
- 中考文言文常见文化常识梳理.docx
- 中考语文二轮:内修君子德外尽忠臣心诚子书出师表修身立德主题学习.docx
- 中考语文二轮:不一样的求学路一样的成长梦送东阳马生序劝学主题学习.docx
- 中考语文二轮:《陋室铭》《爱莲说》托物寓意主题学习.docx
原创力文档

文档评论(0)