事实上,我们的重载运算符返回void、返回对象本身、返回对象引用都是可以的,并不是说一定要返回一个引用,只不过在不同的情况下需要不同的返回值。 那么什么情况下要返回对象的引用呢? 原因有两个: 允许进行连续赋值 防止返回对象(返回对象也可以进行连续赋值)的时候调用拷贝构造函数和析构函数导致不必要的开 ...
分类:
编程语言 时间:
2016-09-14 12:32:22
阅读次数:
324
一、基本想法 (1)整数和分数的四则运算 由于四则运算要支持分数,刚开始我想着是自定义分数这种数据类型,而后再重载运算符。可当整数和分数混合运算的话,就要考虑到数据类型间的转化,比较麻烦。于是我转化了下思路,即将整数看成是特殊的分数(分母为1),这样将整数和分数统一起来,那么初始化便可以根据具体的数 ...
分类:
其他好文 时间:
2016-09-10 16:06:43
阅读次数:
183
发现一篇好文: 转载: 本文主要整理自C++之运算符重载及C++运算符重载总结。 什么是运算符重载 运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用域不同类型的数据导致不同行为的发生。如: 在这个程序里"+"既完成两个整形数的加法运算,又完成了双精度型的加法运算。为什么同一个运算符"+"可 ...
分类:
其他好文 时间:
2016-09-10 11:50:52
阅读次数:
401
String类: 一 []运算符的重载 []运算符的使用可能有以下几种情况: 对于1和2的情况,需要重载: 返回引用是为了可以实现情况2。 对于const String,3允许但4不允许,所以要返回const string& 二 +运算符的重载 为了允许情况2,+运算符需要重载为友元,同时还要有一个 ...
分类:
其他好文 时间:
2016-09-02 11:18:22
阅读次数:
175
运算符重载函数既可以声明为类的成员函数,也可以声明为所有类之外的全局函数。 运算符重载函数作为类的成员函数 将运算符重载函数声明为类的成员函数时,二元运算符的参数只有一个,一元运算符不需要参数。之所以少一个参数,是因为这个参数是隐含的。 例如,上节的 complex 类中重载了加法运算符: 当执行: ...
分类:
编程语言 时间:
2016-08-31 22:08:10
阅读次数:
129
返回类型operator运算符(参数列表){}一般的一元运算符->一个参数,二元运算符->两个参数若运算符函数是成员函数,则第一个运算对象隐式绑定到this指针
分类:
编程语言 时间:
2016-08-31 12:16:19
阅读次数:
124
一、名词解释 1,多态 1)静态多态:a) 函数多态:函数重载,运算符重载 b) 模板多态:函数模板,类模板 2)动态多态:虚函数(切记:只有通过指针或引用才能实现动态多态性。"对象.虚函数“ 和 ”类::虚函数“ 这两种形式不能实现多态) 2,静态类型与动态类型 1) 静态类型:声明对象时,对象被 ...
分类:
其他好文 时间:
2016-08-25 20:59:06
阅读次数:
139
String
在C++的学习生涯我中发现String类的功能十分强大,所以我们是很有必要模拟实现它的,况且在面试的时候模拟实现一个String类也是面试官经常会考的,但是因为外界因素的限制我们是不可能模拟的和库里的string一致的(C++库里的string功能更强大),所以今天我们只模拟实现string的基本功能-构造函数,拷贝构造函数,析构函数,赋值运算符重载,运算符+=的重载...
分类:
编程语言 时间:
2016-08-21 12:35:35
阅读次数:
241
自增运算符“++”和自减运算符“--”分别包含两个版本。即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的。因此,当我们在对这两个运算符进行重载时,就必须区分前置和后置形式。C++根据参数的个数来区分前置和后置形式。如果按照通常的方法来重载 ++ 运算符(即作为 ...
分类:
编程语言 时间:
2016-08-04 19:15:47
阅读次数:
150
运算符重载使得用户自定义的数据以一种更简洁的方式工作。 重载运算符函数可以对运算符作出新的解释,但原有基本语义不变: 不改变运算符的优先级。 不改变运算符的结合性。 不改变运算符所需要的操作数。 不能创建新的运算符。 运算符重载的语法形式 运算符重载是一种特殊的成员函数或友元函数。 成员函数的语法形 ...
分类:
其他好文 时间:
2016-07-12 23:00:44
阅读次数:
220