c++学习笔记5:运算符重载、友元和类的类型转换
2017-05-16 18:17
495 查看
1. 运算符重载
1.1 运算符函数的声明
1.2 运算符函数的调用
常规调用方法
运算符表示法:运算符左侧的对象是调用对象,运算符右侧的对象是作为参数传递的对象。
1.3 重载限制
重载后的运算符必须至少有一个操作数是用户自定义的类型
使用运算符时不能违反运算符原来的语法规则
本能创建新运算符
不能重载下面的运算符
下面的运算符只能通过成员函数重载
可重载的运算符如下
2. 友元
2.1 友元的分类
友元函数、友元类和友元成员函数
2.2 友元的作用
通过让函数成为类的友元,可以赋予该函数与类的成员函数相同的访问权限。
2.3 创建友元
友元函数是非成员函数(因此不能用成员运算符来调用),但其访问权限和成员函数一样。
创建友元函数要将函数原型放在类声明中,并在原型前加上关键字friend。
编写友元函数定义时不需要加限定符::,也不需要加关键字friend。
3. 类的自动转换和强制类型转换
1.1 运算符函数的声明
class Time { public: Time operator+(const Time & t)const; }; Time Time::operator+(const Time & t)const { ... }
1.2 运算符函数的调用
常规调用方法
运算符表示法:运算符左侧的对象是调用对象,运算符右侧的对象是作为参数传递的对象。
total = coding.operator+(fixing); total = coding+fixing;
1.3 重载限制
重载后的运算符必须至少有一个操作数是用户自定义的类型
使用运算符时不能违反运算符原来的语法规则
本能创建新运算符
不能重载下面的运算符
下面的运算符只能通过成员函数重载
可重载的运算符如下
2. 友元
2.1 友元的分类
友元函数、友元类和友元成员函数
2.2 友元的作用
通过让函数成为类的友元,可以赋予该函数与类的成员函数相同的访问权限。
2.3 创建友元
友元函数是非成员函数(因此不能用成员运算符来调用),但其访问权限和成员函数一样。
创建友元函数要将函数原型放在类声明中,并在原型前加上关键字friend。
编写友元函数定义时不需要加限定符::,也不需要加关键字friend。
class Time{ public: friend Time operator*(double m,const Time & t); ... } Time operator*(double m,const Time & t) { ... }
3. 类的自动转换和强制类型转换
相关文章推荐
- C++学习笔记9-运算符重载
- 【C++学习笔记】优先级队列以及运算符重载
- 嵌入式开发之C++基础学习笔记5--静态成员,友元,运算符重载,模板,文件流
- c++学习笔记--由复数类看运算符重载
- c++学习笔记 运算符重载
- C++基础学习笔记:运算符重载
- C++学习笔记之运算符重载
- c++学习笔记(十):运算符重载综合——自定义数组类
- C++学习笔记——运算符重载
- c++学习笔记--带有动态空间申请的类成员变量的类的运算符重载
- C++学习笔记十四-运算符重载
- c++学习笔记(运算符重载)
- C++学习笔记4--静态属性 静态方法 虚方法 抽象方法 多态性 析构函数 运算符重载 多继承 虚继承
- 【菜鸟C++学习笔记】26.运算符重载
- C++学习笔记(运算符重载)
- C++学习笔记(十)运算符重载
- 【C++学习笔记】常见运算符重载
- C++学习笔记 lesson5 运算符重载
- C++学习笔记之运算符重载
- C++学习笔记之运算符重载例子