C++运算符重载函数作为类成员函数和友元函数
C++运算符重载函数作为类成员函数
#include <iostream>
using namespace std;
class Complex
{
public:
Complex(double r,double i):real(r),image(i){}
Complex(){real=0;image=0;}
Complex operator+(Complex &);
friend Complex operator+(int i,Complex &c);
friend Complex operator+(Complex &c,int i);
void display();
private:
double image,real;
};
Complex Complex::operator+(Complex &c)
{
Complex c1;
c1.image=image+c.image;
c1.real=real+c.real;
return c1;
}
Complex operator+(int i,Complex &c)
{
return Complex(i+c.real,c.image);
}
Complex operator+(Complex &c,int i)
{
return Complex(i+c.real,c.image);
}
void Complex::display()
{
cout << "(" << real << "," << image << ")" << endl;
}
int main()
{
Complex c1(1,2);
Complex c2(2,3);
Complex c3=c1+c2;
Complex c4=1+c1;
Complex c5=c1+1;
c1.display();
c2.display();
c3.display();
c4.display();
c5.display();
return 0;
}
C++运算符重载函数作为类成员函数和友元函数相关推荐
- 10.2 运算符重载函数作为类成员函数和友元函数
Complex operator+(Complex &c2) { Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c; ...
- 【C/C++学院】(8)全局函数和类成员函数转化/友元/操作符重载
1.全局函数和类成员函数转化 全局函数和成员函数的相互转化:只需要修改一个指向本类的this指针: #include <iostream> using namespace std;clas ...
- 将类的成员函数作为回调函数(外一篇:友元函数)
转自:http://blog.csdn.net/xylary/article/details/1548596 将类成员函数用做C回调函数 提出问题: 回调函数是基于C编程的Windows SDK的技 ...
- C++(16)--运算符重载(自定义Integer类)
运算符重载 1.运算符重载--重点 2.友元函数--难点(流运算符重载) <老九学堂C++课程><C++ primer>学习笔记.<老九学堂C++课程>详情请到B站 ...
- 深入篇【C++】类与对象:友元函数与友元类
深入篇[C++]类与对象:友元函数与友元类 ①.提出问题:重载operator<< ②.解决问题:友元 Ⅰ.友元函数 [特点] Ⅱ.友元类 [特点] ③.总结问题 ①.提出问题:重载ope ...
- 当类模板遇到了友元函数
在我学习数据结构的时候,选用了<数据结构(用面向对象方法与C++语言描述)>殷人昆 编著 这本教材.这本书代码较老有一些错误,好多是无法直接在新版本编译器下实现的. 当时我C++模板学的不 ...
- C++ 函数指针 类成员函数指针
一.函数指针 函数存放在内存的代码区域内,它们同样有地址.如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址. 1.函数 ...
- c++ 线程函数(类成员函数作为线程函数使用)
C++类成员函数使用时,都会隐式传递一个this指针给该函数,this指针指向该类的对象.函数体可以通过显示调用该指针或直接访问类内成员. 回调函数是通过指针调用的函数,最常使用的回调函数就是在创建线 ...
- 3-8:类与对象下篇——友元函数、友元类和内部类
文章目录 一:友元函数 (1)友元函数 (2)友元类 二:内部类 一:友元函数 C++运算符重载为我们带来了极大的便利.因此,对于日期类这样的自定义类型,就可以重载运算符<<,然后使用co ...
最新文章
- Redis亿级数据过滤和布隆过滤器
- (正确姿势)centos7 如何从U盘拷贝文件
- mysql的联合查询差集_MySQL实现差集(Minus)和交集(Intersect)
- 非二进制字符串数据:CHAR,VARCHAR,TEXT
- rowspan和colspan用法详解
- append有时加载不出来_关于艾拉浏览器看漫画,有时加载慢的解决方法,你知道了吗...
- c#子线程和主线程创建窗体时顶层显示的区别
- c++语言get:_用C++给R语言加速:Rcpp简单用法
- python fun函数、求4x4整型数组的主对角线元素的和_python中多维数组中列major的numpy整形...
- Linux下的设计模式——委派模式(Delegate Pattern)深入浅出【建议新手收藏】
- 那些年做的xmind思维导图
- 使用Intent启动常用的应用与服务
- bzoj1692 [Usaco2007 Dec]队列变换
- 世界三大粮食·水稻稻米十大生产国 国稻种芯百团计划行动
- Adding Animations之Zooming a View
- 基于HTML5+CSS3的网页设计与实现
- Zotero+OneDrive多平台在线同步完美解决方案(一):安装配置、云端同步文献数据
- 随机过程、马尔可夫链 详解
- 《java从入门到放弃》_《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)
- 读书笔记-人月神话19
热门文章
- SpringBoot默认日志logback配置解析
- 关于Java成员变量、局部变量、方法,在JVM的内存空间分配
- SpringMVC注解@RequestParam全面解析____ 注解@RequestParam如何使用加与不加的区别
- 解决SVN提交和更新代码冲突?
- asp.net接受表单验证格式后再提交数据_看滴普科技大前端如何玩转el-form-renderer 表单渲染器1.14.0
- java有几种变量_java有多少种变量?java类变量怎么使用?
- from mysql partition select_玩转select条件查询,避免踩坑
- vs 2015 oracle,VS2015连接oracle11g出现异常
- 无法从“cstring”转换为“lpcstr”_U盘重装系统后,无法使用?
- js中for循环调用回调函数,一直循环最后一个