内容正文:
运算符重载
本书前几章都是介绍C++在基于过程的程序设计中的技术和应用,基于过程的程序设计的特点是程序由一个个函数构成。实际上,C++是一种基于过程和面向对象的混合型语言,下面就来介绍C++在面向对象程序设计中的技术和应用。面向对象程序的基本结构是类,程序面对的是类和对象 。
目录
第10章
C++程序设计案例教程
10.1 单目运算符重载
Add your text in here
Click to add Text
实现前缀“++”运算符重载
案例引入
定义类Ex,并为其重载前缀运算符“++”,使该类型的对象具有自加2的功能。
10.1.1 重载前缀“++”运算符
目录
第10章
C++程序设计案例教程
10.1.1 重载前缀“++”运算符
源代码展示
#include <iostream.h>
class Ex
{
private:
int n;
public:
Ex(int i=0){n=i;}
void operator++()
{
n=n+2;
}
void display()
{
cout<<"n="<<n<<endl;
}
};
void main()
{
Ex x(5);
++x;
x.operator++();
x.display();
}
目录
第10章
C++程序设计案例教程
10.1.1 重载前缀“++”运算符
运行结果
程序分析
程序在类Ex中黑体部分实现了前缀“++”运算符的重载,使运算符“++”的功能变为自加2。主函数中定义了类Ex的对象x,并使用了两种方式调用重载的运算符“++”,即“++x;”和“x.operator++();”。x的初值为5,经过两次++操作之后,执行结果为n=9。
目录
第10章
C++程序设计案例教程
知识讲解
重载前缀“++”运算符的语法格式如下:
<函数类型> operator ++()
而使用前缀“++”运算符的语法格式如下:
++<对象>
在使用前缀“++”运算符时,先对对象进行增量修改,然后再返回该对象。
在C++中,单目运算符包括“++”和“--”,它们都有前缀和后缀的形式。这里,重载前缀“--”运算符的方法和重载前缀“++”运算符的方法相同。
目录
第10章
C++程序设计案例教程
10.1.2 重载后缀“++”运算符
Add your text in here
Click to add Text
构造函数的使用
案例引入
在类中定义多个重载的构造函数,观察类对象建立时,各构造函数调用的情况 。
目录
第10章
C++程序设计案例教程
10.1.2 重载后缀“++”运算符
源代码展示
#include <iostream.h>
class Ex
{
private:
int n;
public:
Ex(int i=0)
{
n=i;
}
void operator ++()
{
n=n+2;
}
void operator++(int)
{
n=n+3;
}
void display()
{
cout<<"n="<<n<<endl;
}
};
void main()
{
Ex x(5),y(5);
++x;
x.operator++();
y++;
x.display();
y.display();
}
目录
第10章
C++程序设计案例教程
10.1.2 重载后缀“++”运算符
运行结果
程序分析
上述程序在类Ex中黑体部分实现了后缀“++”运算符的重载,使后缀“++”运算符的功能变为自加3。主函数中定义了类Ex的对象y,由于y的初值为5,经过“y++;”操作之后,执行结果为n=8。
目录
第10章
C++程序设计案例教程
知识讲解
重载后缀“++”运算符的语法格式如下:
<函数类型> operator ++(int)
而使用后缀“++”运算符的语法格式如下:
<对象>++
使用后缀“++”运算符时,应该在增量操作之前返回原有的对象值,因此需要创建一个临时对象存放原有的对象,以便对对象进行增量修改时保存最初的值;然后再对对象执行增量修改。
重载后缀“--”运算符的方法和重载后缀“++”运算符的方法相同。
目录
第10章
C++程序设计案例教程
10.2.1 以非静态成员函数方式重载“+”运算符
Add your text in here
Click to add Text
实现改进的前缀“++”运算符和
后缀“++”运算符的重载
案例引入