摘要:
1,运算符函数既可以是成员函数也可以是全局函数。为了提高性能,通常将全局函数定义为友元。成员函数用this指针隐式地获得一个类对象实参(二元运算符的左操作数)。在全局函数调用中,必须显示地列出表示二元运算符的两个操作数的实参。2.重载(),[],->或任何赋值运算符是,必须将运算符重载函数声明为类的成员。其他运算符的重载函数既可以是类的成员也可以是全局函数。3.当运算符函数实现为成员函数时,最左侧的(或是唯一的)操作数必须是该运算符所属类的对象(或是该类对象的引用)4.如果左操作数必须是一个不同类的对象或基本类型对象,则运算符函数必须实现为全局函数。5.如果全局运算符函数必须直接访问类的 阅读全文
posted @ 2014-03-24 19:53
ShowJoy
阅读(312)
评论(0)
推荐(0)
摘要:
当类被实例化时,编译器会执行隐式转换的单实参构造函数,该构造函数接受的实参类型被转换成该构造函数所属类的对象。这种转换是自动的,不需要程序员进行强制类型转换。有些情况下,隐式转换是不必要的而且容易出错。eg:class Array{ Array(int a=10); //单实参构造函数,会隐身转换实参类型private:int size;int *ptr;};Array::Array(int a){ size = (s>0)?s:10;//验证数组大小 ptr = new int[size]; for(int i=0;i < size ; i++){ ... 阅读全文
posted @ 2014-03-24 19:26
ShowJoy
阅读(239)
评论(0)
推荐(0)