编写高质量代码——运算符重载,是成员函数还是友元函数...
分类:
其他好文 时间:
2014-06-20 13:30:30
阅读次数:
164
Divide two integers without using
multiplication, division and mod operator.
其实刚开始看到这道题的时候,感觉应该是略简单。但真正开始写的时候发现了很多错误。 最开始的想法就是divisor一个一个加上去直到大于divide...
分类:
其他好文 时间:
2014-06-11 12:17:22
阅读次数:
274
问1:子类继承了父类的所有成员,对吗?答1:错,子类没有继承父类的构造函数,析构函数,operator=和友元函数。问2:父类指针指向子类对象,通过该指针能够调用子类特有(父类没有)的函数吗?答2:不能,见下例。#include
using namespace std;class A{};class...
分类:
其他好文 时间:
2014-06-11 07:18:16
阅读次数:
193
1.赋值运算符
先以赋值运算符引入后面要说的运算符重载,上一节说了构造函数、拷贝构造函数;一个类要想进行更好的控制,需要定义自己的构造函数、拷贝构造函数、析构函数、当然,还有赋值运算符。常说的三大函数就是指拷贝、赋值、析构。
如果一个类不定义自己的赋值运算符,会自己生成一个默认的赋值运算操作,这个默认的赋值运算满足一般类的需求。但是当类的功能、作用逐渐完善时,就...
分类:
编程语言 时间:
2014-06-10 10:50:06
阅读次数:
235
// 研究了半宿,终于弄清楚了
// 写了这段测试代码可以很好的演示效果
class CConvert
{
public:
CConvert(){m_nValue = 10;}
// 重载()运算符
int operator ()();
// 重载int强制类型转换
operator int();
prot...
分类:
其他好文 时间:
2014-06-10 07:04:24
阅读次数:
196
//定义二维平面上的点struct Point{ int x; int y;
Point(int a=0, int b=0):x(a),y(b){}};bool operator==(const Point& left,
const Point& right){ return...
分类:
其他好文 时间:
2014-06-08 22:26:17
阅读次数:
357
编写高质量代码——重载operator=的标准三步走...
分类:
其他好文 时间:
2014-06-07 14:02:15
阅读次数:
204
操作符重载函数(Operator Overload
Function)的基本概念:目的是以与对待内置数据类型相同的方式对待用户自定义类型(程序执行速度会受到影响),限制是不能随意选择函数名和参数个数(必须与重载的基本类型运算符保持一致);编译器首先检查的表达式中的左操作数是否为对象类型,若是则在其类...
分类:
编程语言 时间:
2014-06-06 10:33:38
阅读次数:
388
运算符重载函数的限制:五个不能实现重载的符号:".", ".*", "::", "?",
"sizeof";重载运算符可以定义为类成员函数(这时候可以向当前对象发送消息的动作执行操作),也可定义为全局函数(一般为对应类的友元函数,此类函数需要显式指定所有参数,并且如果有转换构造函数,则可以使用于所有...
分类:
编程语言 时间:
2014-06-06 09:25:44
阅读次数:
428
1.ostream & operator> a >> b >>
c; 输入: yuandedong 123 h a: yuandedong b: 123 c: h 读完yuandedong后 就返回cin
相当于cin>>b>>c; 因此不可能将h读到a中。 6.cin输入的注意事项 看下例: 结果...
分类:
编程语言 时间:
2014-06-06 07:28:55
阅读次数:
394