1 / 14
文档名称:

c语言程序设计(ppt课件).pptx

格式:pptx   大小:114KB   页数:14页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c语言程序设计(ppt课件).pptx

上传人:1017848967 2021/12/14 文件大小:114 KB

下载得到文件列表

c语言程序设计(ppt课件).pptx

相关文档

文档介绍

文档介绍:C++语言程序设计
第十一组
C++语言程序设计
第九章 类的特殊成员
C++语言程序设计
1
C++语言程序设计
2
基本知识
a
运算符重载
运算符重载
是C++的一个特性,使得程序员可以把C++的运算符扩展到用户自定义的类类型中
C++中预定义的运算符,如+、−、=、>>等,其操作对象只能是基本数据类型,对于很多用户自定义类型,也需要类似的运算操作
使用运算符重载可以使C++代码更直观、易懂,函数调用更方便、简洁
运算符重载的实质就是函数重载
对已有的运算符赋予多重含义,使同一运算符作用于不同类型的数据时发生不同的行为
C++语言程序设计
3
运算符重载
例:使用字符串处理函数完成字符串的复制和连接
C++语言程序设计
4
//使用字符串处理函数复制和连接字符串
#include <cstring>
#include <iostream>
using namespace std;
void main()
{
char *s1="Hello";
  char *s2="world";
  char s3[80] ="";
  strcpy(s3,s1); //字符串复制
  cout<<s3<<endl;
  strcat(s3,s2); //字符串连接
  cout<<s3<<endl;
}
运算符重载
例:使用重载运算符“=”和“+”完成字符串的复制和连接
C++语言程序设计
5
//使用重载运算符复制和连接字符串
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s1="Hello";
  string s2="world";
  string s3;
  s3=s1; //字符串复制
  cout<<s3<<endl;
  s3=s1+s2; //字符串连接
  cout<<s3<<endl;
}
运算符重载
运算符重载的规则
重载运算符时,运算符的运算顺序和优先级不变,操作数个数不变
不能创造新的运算符,只能重载C++中已有的运算符,并且规定有6个运算符不能重载
一般来讲,重载后的运算符的功能应当与运算符的实际意义相符
C++语言程序设计
6
运 算 符
含 义
.
类属关系运算符
.*
成员指针运算符
::
作用域运算符
?:
条件运算符
#
编译预处理符号
sizeof
取数据类型的长度
运算符重载
运算符重载的形式:
重载为类的成员函数
函数定义可以放在类的声明中,也可以在类声明的外部
类外定义的形式为:函数类型 类名::operator 运算符(形参表)
{
函数体
}
重载为类的友元函数
类的声明中需要声明该函数为友元函数:friend 函数类型 operator 运算符(形参表);
函数定义必须在类的外部,形式为:函数类型 operator 运算符(形参表)
{
函数体
}
C++语言程序设计
7
运算符重载
关于运算符重载定义的几点说明
函数类型指明了重载运算符的返回值类型,也就是运算结果类型
operator是定义运算符重载的关键字
“运算符”即要重载的运算符名称
形参表给出的是运算符需要的操作数
重载为成员函数:对象本身就是其中的一个操作数,形参表内参数的数目比操作数的数目少一个
重载为友元函数:每个形参代表运算符的一个操作数,形参表内参数的数目等同于操作数的数目
C++语言程序设计
8
例:创建一个复数类,将+、−、+=运算符重载为成员函数
运算符重载
C++语言程序设计
9
//创建一个复数类,将+、−、+=运算符重载为成员函数
#include <iostream>
#include <iomanip>
using namespace std;
class complex{
public:
complex(double real=0,double imag=0): r(real),i(imag) {}
complex operator