摘要:
1.有四个操作符不允许重载,它们是:: .* . ?:2.程序员只能为类类型或枚举类型的操作数定义重载操作符3.除了operator()之外,对其他重载操作符提供缺省实参都是非法的4.c++要求,=,[],()和->四个操作符必须被定义为类成员操作符,否则会编译错误5.操作符->被重载为一元操作符,即它没有参数。比如如下代码:class Aptr{public: A* operator->(){return ptr;}};Aptr p;那么就可以用p->a;来访问类A的成员变量a。6.operator new()和new表达式的区别。c++primer上多次提到new操 阅读全文
摘要:
函数指针数组的定义方法,有两种:一种是标准的方法;一种是蒙骗法。第一种,标准方法:{分析:函数指针数组是一个其元素是函数指针的数组。那么也就是说,此数据结构是是一个数组,且其元素是一个指向函数入口地址的指针。根据分析:首先说明是一个数组:数组名[]其次,要说明其元素的数据类型指针:*数组名[].再 次,要明确这每一个数组元素是指向函数入口地址的指针:函数返回值类型 (*数组名[])().请注意,这里为什么要把“*数组名[]”用括号扩起来呢?因为圆括号和数组说明符的优先级是等同的,如果不用圆括号把指针数组说明 表达式扩起来,根据圆括号和方括号的结合方向,那么 *数组名[]() 说明的是什么呢?是 阅读全文
摘要:
sizeof()功能:计算数据空间的字节数1.与strlen()比较strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。2.指针与静态数组的sizeof操作指针均可看为变量类型的一种。所有指针变量的sizeof 操作结果均为4。注意:int *p; sizeof(p)=4; 但sizeof(*p)相当于sizeof(int);对于静态数组,sizeof可直接计算数组大小;例:int a[10];char b[]="hello&qu 阅读全文