02 2012 档案
摘要:1.函数指针double pam(int);double (*pf) (int);pf=pam;double x=pam(6);double y=(*pf)(6);//通过double yy=pf(5);//通过历史和逻辑:为何pf和(*pf)等价呢?一种学派认为,由于pf是函数指针,而*pf是函数,因此应将(*pf)()用过函数调用。另一种学派认为,由于函数名是指向该函数的指针,指向函数的指针的行为应与函数名相似,因此应将pf()用作函数调用使用。C++进行了折衷--这两种方式都是正确的,或者至少是允许的,虽然他们在逻辑上是相互冲突的。在认为折衷折衷粗糙之前,应该想到,容忍逻辑上无法自圆其说
阅读全文
摘要:public delegate void ConnectEventHandler();//定义连接委托 public delegate void SendEventHandler();//定义发送委托 public delegate void PackageEventHandler();//定义收到一个完整的数据包委托 public class SocketHelper { private Socket socket;//定义Socket private SocketAsyncEventArgs socketArgs;//定义Socket参数 public event ConnectEvent
阅读全文
摘要:1.使用new和delete时,应遵守以下规则:* 不要是用delete来释放不是new分配的内存。* 不要是用delete释放同一个内存块两次。* 如果是用new[]为数组分配内存,则应使用delete来释放。* 如果使用new[]为一个实体分配内存,则应使用delete(没有方括号)来释放。* 对空值指针应用delete是安全的。2.一般来说,如果给count提供一个指针,它将打印地址。但如果指针的类型为char *,则cout将显示指向的字符串。如果要限制的是字符串的地址,则必须将这种指针强制转换为另一种指针类型,如int *。char *animal="dog";c
阅读全文