C++课件讲解:重载后自增量运算符

需积分: 35 11 下载量 113 浏览量 更新于2024-08-23 收藏 2.25MB PPT 举报
"重载单目运算符后自增量-吉林大学c++课件" 这篇课件主要讲解了C++中的一个重要概念——运算符重载,特别是关于后自增量运算符的重载。在C++中,运算符重载允许我们为已有的运算符赋予新的含义,以便在自定义类型上使用。这里特别提到了如何重载后自增量运算符`++`。 后自增量运算符`++`通常用于增加变量的值。在C++中,有两种形式的自增量运算符:前置`++`和后置`++`。前置`++`在操作之前立即增加变量的值,而后置`++`则先返回当前值,然后再增加。在重载后自增量运算符时,需要返回一个临时对象,这个对象保存了操作之前的值,因为后自增量运算符通常用于表达式中,需要保留操作前的值以便后续计算。 在给出的代码示例中,定义了一个名为`aa`的类,它有两个成员变量`a`和`b`。`aaa()`和`bbb()`是两个返回成员变量引用的成员函数,这使得可以直接通过这些函数修改类的内部状态。接着定义了`aa`类的后自增量运算符重载函数`operator++(int)`,这里传递的`int`形参实际上并不使用,而是为了与前置自增量运算符重载函数区分开。在重载的`operator++(int)`函数中,首先创建了一个`aa`类型的临时对象`m`,保存了当前对象的状态,然后将`a`和`b`的值分别加1。最后返回临时对象`m`,这样在表达式中使用后自增量运算符时,可以得到操作前的值。 在`main`函数中,创建了一个`aa`类型的对象`a`,并初始化了它的`a`和`b`成员。然后使用`a++.aaa()`和`a.aaa()`分别输出了在后自增量操作后的`a`的值,这展示了后自增量运算符的正确行为,即先返回当前值,再进行增加。 C++是C语言的扩展,增加了对面向对象编程的支持,使得程序员能够更好地管理和组织代码,提高代码的重用性和可维护性。课件中还提到了C++的诞生背景,它是Bjarne Stroustrup在C语言基础上加入面向对象特性发展起来的,最终形成了C++这一强大的编程语言。C++既包含了过程性编程的元素,也支持面向对象编程,因此被称为混合型语言。面向对象编程的核心概念包括对象、类、继承和多态等,这些都使得C++成为了一种强大的系统级和应用级编程工具。

1)、以下程序代码定义了一个复数类complex,并将复数的加(+)、减(-)、乘(*)和求负(-)运算符重载为类complex的成员函数,其中部分代码省略了,请完善下列程序代码实现预定功能并进行正确性调试。 #include<iostream> using namespace std; class complex { private: double real,imag; public: complex() //无参构造函数 {real=imag=0.0;} complex(double r){real=r;imag=0.0;} //重载构造函数 complex(double r,double i){real=r;imag=i;} //重载构造函数 //运算符重载为成员函数,返回结果为complex类 complex operator + (const complex &c) //重载加法运算符 { return complex(real+c.real,imag+c.imag); } complex operator - (const complex &c) //重载减法运算符 { ...此处代码省略了 } complex operator * (const complex &c) //重载乘法运算符 { ...此处代码省略了               } complex operator-() //重载求负运算符 { ...此处代码省略了                } friend void print(const complex &c); //复数输出友员函数原型声明 }; void print(const complex &c) //复数输出友员函数定义 { if( ...此处代码省略了 ) cout<<c.real<<c.imag<<"i"; else cout<<c.real<<"+"<<c.imag<<"i"; } int main() { complex c1(3.0),c2(2.0,-1.0),c3; ...此处代码省略了 cout<<"\nc1+c2= "; print(c3); ...此处代码省略了 cout<<"\nc1-c2= "; print(c3); ...此处代码省略了 cout<<"\nc1*c2= "; print(c3); cout<<"\n-c2= "; ...此处代码省略了 return 0; }

2023-06-11 上传