C/C++
文章平均质量分 68
机智的Eric
这个作者很懒,什么都没留下…
展开
-
函数指针 - 一般情况和类的nonstatic成员函数
函数指针是通过指向函数的指针间接调用函数。函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数的指针和一般函数的指针的表现形式不一样。 1、指向一般函数的指针 函数指针的声明中就包括了函数的参数类型、顺序和返回值,只能把相匹配的函数地址赋值给函数指针。为了封装同类型的函数,可以把函数指原创 2014-03-24 19:08:04 · 781 阅读 · 0 评论 -
virtual关键字
一、基本概念 多态,是C++中一个很棒的特性——“无论发送消息的对象属于什么类,它们均发送具有同一形式的消息,对消息的处理方式可能随接手消息的对象而变”的处理方式被称为多态性。其实现是基于虚函数机制的。 虚函数,是一种成员函数,它可以在该类的派生类中被重新定义并被赋予另外一种处理功能。示例如下: class Base { public: ... virtual voi原创 2014-03-25 01:30:17 · 818 阅读 · 0 评论 -
一个简单的序列化实现
以下是一个带有入侵性的序列化实现方法,尚还未加入支持STL容器。 namespace persistent { //bool理论上使用一个bit就可以表示,但是实际还是使用1个字节,因为这是内存操作的最小单位 //这两个值可以是任意值,只要不相同即可,只是用于校验 const long true_pattern = 0xF00DF00D; cons原创 2014-03-30 21:33:21 · 821 阅读 · 0 评论 -
Google关于C++开源项目的规范
一、头文件规范 1. 每一个cpp文件对应都有.h文件。除非cpp文件很简单或者值包含了main函数。 2. 每一个头文件都定义自己的头文件保护,防止重复引用和编译。 3. 一般都用#include而不是前向定义,除非include的代价过大。 4. 函数定义如果超过10行,坚决不能inline。 5. 函数参数排序,从input到output。原创 2014-03-30 23:30:55 · 757 阅读 · 0 评论 -
命名空间 - 一个容易被忽视的查找规则
示例代码: namespace lx1 { class Point3D { public: Point3D(double dx, double dy, double dz) : m_dX(dx) , m_dY(dy) , m_dZ(dz){} do原创 2014-03-30 22:37:14 · 863 阅读 · 0 评论 -
防止内存泄露的一些Tips
1.如果在构造函数里new了一个对象并使用成员指针变量来保存,那么必须在析构函数里delete它,并且不能为了某些便利而将这个对象的所有权转让出去的事情发生。 2.尽量使用shared_ptr。只要不发生循环引用,那么这个东西可以让你的对象安全地互相传递,随便放在什么容器里面添加删除,再也不用考虑生命周期问题了。(什么是循环引用?简单来说就是,两个对象都使用了一个shared_ptr成员变原创 2014-03-30 22:29:36 · 645 阅读 · 0 评论