二次网站开发,做代售机票网站程序,seo推广软件下载,做亚马逊有哪些站外折扣网站文章目录 一、后置运算符重载1、前置运算符重载 与 后置运算符重载 的区别2、后置运算符重载添加 int 占位参数 上 2 2 2 篇博客
【C】运算符重载 ④ ( 一元运算符重载 | 使用 全局函数 实现 前置 自增运算符重载 | 使用 全局函数 实现 前置 - - 自减运算符重载 )【C】运算符… 文章目录 一、后置运算符重载1、前置运算符重载 与 后置运算符重载 的区别2、后置运算符重载添加 int 占位参数 上 2 2 2 篇博客
【C】运算符重载 ④ ( 一元运算符重载 | 使用 全局函数 实现 前置 自增运算符重载 | 使用 全局函数 实现 前置 - - 自减运算符重载 )【C】运算符重载 ⑤ ( 一元运算符重载 | 使用 成员函数 实现 前置 自增运算符重载 | 使用 成员函数 实现 前置 - - 自减运算符重载 )
讲解了 前置运算符 的 重载 , 前置运算符就是 Object 或 --Object , 一元运算符 在 对象的 前面 ;
本篇博客开始讲解 后置运算符 的重载 ; 一、后置运算符重载 1、前置运算符重载 与 后置运算符重载 的区别 后置运算符 是 Object 或 Object-- , 一元运算符在对象的后面 ;
前置运算符重载 与 后置运算符重载 的区别是 返回值类型 不同 ,
前置运算符重载 , 返回值是 对象引用 ;
// 使用 全局函数 实现 前置 自增运算符重载
// 重载 前置 运算符
// 实现 1 个 Student 对象 自增运算
// 由于 参数中的 Student s 中的属性发生了变化
// 返回时仍需要返回 Student s 参数本身
Student operator(Student s)
{s.age;s.height;return s;
};后置运算符重载 , 返回值是 匿名对象 ;
// 使用 全局函数 实现 后置 自增运算符重载
// 重载 后置 运算符
// 实现 1 个 Student 对象 自增运算
// 先使用 参数中的 Student s 对象 , 再自增
// 因此 Student s 对象是需要自增的
// 但是使用的对象 就是 返回的对象, 必须是没有自增的对象
// 这里使用 ret 保存 s 对象值 , 然后返回该 ret 值
// s 对象中的值自增
// 返回的是一个新 Student 对象
Student operator(Student s)
{Student ret s;s.age;s.height;return ret;
};由于 重载函数 只看 函数名 和 参数列表 , 不看返回值 , 因此
Student operator(Student s)Student operator(Student s)
这 2 2 2 个函数被看做相同的函数 , 上述重载函数定义 , 在编译时报错 ,
error C2556: “Student operator (Student )”: 重载函数与“Student operator (Student )”只是在返回类型上不同2、后置运算符重载添加 int 占位参数 因此 , 后置运算符重载 , 通常需要一个 占位参数 int ;
这个参数没有实际的意义 , 只是为了和 前置运算符重载 进行区别 ;
// 使用 全局函数 实现 后置 自增运算符重载
// 重载 后置 运算符
// 实现 1 个 Student 对象 自增运算
// 先使用 参数中的 Student s 对象 , 再自增
// 因此 Student s 对象是需要自增的
// 但是使用的对象 就是 返回的对象, 必须是没有自增的对象
// 这里使用 ret 保存 s 对象值 , 然后返回该 ret 值
// s 对象中的值自增
// 返回的是一个新 Student 对象
Student operator(Student s, int)
{Student ret s;s.age;s.height;return ret;
};占位参数 参考 【C】函数参数扩展 ② ( 占位参数 | 占位参数规则 - 必须为占位参数传入实参 | 默认参数与占位参数结合使用 ) 博客 ;