四十七、多态性:运算符重载为类的友元函数
来源:互联网 发布:mac鼠标能点右键吗 编辑:程序博客网 时间:2024/06/05 14:50
友员函数可以通过类对象访问类的公、私、保护成员。和类成员函数权限一样与重载为成员函数不同的是:重载的友元函数不属于任何类,这样操作数都需要通过函数的形参表传递。(前面的双目只需提供一个参数,因为调用对象本身就是一个操作数了)同样分为双目运算和单目运算来讨论。双目运算符如类A “+”重载为其友员函数。对象a+b相当于 operator+(a,b)
单目运算符以前置和后置“++”为例前置++a 相当于operator++(a)后置a++ 相当于operator++(a,0) //0同样是为区分,无实际意义
#include<iostream.h>//using namespace std; //vc6.0运程异常,注释后运行通过class Time{public: Time(int h=0,int m=0); //默认参数值 friend Time operator+(Time t1,Time t2); //重载为类的友员函数 int GetH(){return m_hour;} int GetM(){return m_minute;} void showTime();private: int m_hour,m_minute;}; Time::Time(int h,int m)//默认参数不能在函数声明和实现中同时出现{ h+=m/60; m%=60; m_hour=h; m_minute=m;}Time operator +(Time t1,Time t2) //和上例基本相同,区别只重载为友元函数,有两个操作数{ int newH,newM; newM=t1.m_minute+t2.m_minute; newH=t1.m_hour+t2.m_hour; newH+=newM/60; newM%=60; newH%=24; return Time(newH,newM); //看似对构造函数的调用,实际是构造一个临时对象并返回到主函数中}void Time::showTime(){ cout<<m_hour<<"时"<<m_minute<<"分"<<endl;}int main(){ Time t1(15,51),t2(10,30); Time t3=t1+t2; t3.showTime(); return 0;}//2时21分
//Press any key to continue
0 0
- 四十七、多态性:运算符重载为类的友元函数
- C++编程入门系列之四十七(多态性:运算符重载为类的友元函数)
- 多态性:运算符重载为类的友元函数
- 多态性:运算符重载为类的成员函数
- 四十六、多态性:运算符重载为类的成员函数
- 运算符重载为友元函数
- 飛飛(四十三)复数类中的运算符重载(用友元函数编写)
- 【Linux基础】运算符重载为类的友元函数
- 处理虚数类 运算符的重载 友元函数
- 复数类的运算符重载(友元函数)
- c++ 类的使用 友元函数 重载运算符
- 运算符重载为友元函数举例
- 重载为类的友元函数
- 运算符-重载为成员函数 和友元函数的区别.
- 运算符-重载为成员函数 和友元函数的区别.
- 解析C++中不能重载为友元函数的四个运算符
- 解析C++中不能重载为友元函数的四个运算符
- 成员函数重载运算符和友元函数重载运算符的比较
- 1029. 旧键盘(20)
- poj 2446 二分图最大匹配 匈牙利算法
- Solution to CLRS Chapter 4
- C++ Primer:第八章:IO库(续)
- 第十一周项目一 是春哥啊
- 四十七、多态性:运算符重载为类的友元函数
- 动态规划(线性类)--ones 唯“一”运算
- 每天拿出来2小时浪费(文/王路) 作者: 王路
- uva 11991 Easy Problem from Rujia Liu? Data Structure
- 答微信产品经理假面试题
- Java遇见的一些概念问题
- app icon 需要哪些尺寸的图片
- Python报错:ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can
- BestCoder Round #41 A B C