摘要: 条款十四:在资源管理类中小心copying行为首先来看一个例子: 1 #include <iostream> 2 using namespace std; 3 4 class Lock 5 { 6 public: 7 explicit Lock(int* pm): m_p(pm) 8 { 9 lock(m_p);10 }11 12 ~Lock()13 {14 unlock(m_p);15 }16 17 private:18 int *m_p;19 void lock(int* pm)20 ... 阅读全文
posted @ 2013-05-25 15:58 Jerry19880126 阅读(1081) 评论(0) 推荐(0) 编辑
摘要: 恼人的函数指针(二):指向类成员的指针前面曾写过一篇恼人的函数指针(一),总结了普通函数指针的声明、定义以及调用,还有函数指针数组,函数指针用作返回值等。但是作为C++的研读,我发现我漏掉了一个最重要的内容,就是指向类成员的指针,这里将做相应补充(相关代码测试环境为vs 2010)。指向类成员的指针总的来讲可以分为两大类四小类(指向数据成员还是成员函数,指向普通成员还是静态成员),下面一一做介绍:一、指向类的普通成员的指针(非静态)1、指向类成员函数的指针简单的讲,指向类成员函数的指针与普通函数指针的区别在于,前者不仅要匹配函数的参数类型和个数以及返回值类型,还要匹配该函数指针所属的类类型。总 阅读全文
posted @ 2013-05-25 11:10 Jerry19880126 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 恼人的函数指针(一)这篇是为了加深记忆所写。发现,很多知识若不经过反复的琢磨和动手实践,是很难记得住的。1) 函数指针的初始化。函数如下:1intCompareString(conststring&str1,conststring&str2)2{3returnstr1.compare(str2);4}函数的初始化有两种方式:第一种,也是最普遍的方式:1int(*CompareFunction)(conststring&,conststring&)=CompareString;第二种,是使用typedef定义函数类型,这种写法有助于对代码的理解:1typedefi 阅读全文
posted @ 2013-05-25 10:37 Jerry19880126 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 一般函数指针和类的成员函数指针转载请注明原文网址:http://www.cnblogs.com/xianyunhe/archive/2011/11/26/2264709.html函数指针是通过指向函数的指针间接调用函数。函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数的指针和一般函数的指针的表现形式不一样。1、指向一般函数的指针函数指针的声明中就包括了函数的参数类型、顺序和返回值,只能把相匹配的函数地址赋值给函数指针。为了封装同类型的函数,可以把函数指针作为通用接口函数的参数,并通过函数 阅读全文
posted @ 2013-05-25 10:28 Jerry19880126 阅读(325) 评论(0) 推荐(0) 编辑