C++开发
由此及彼
代码可以更优雅。
展开
-
浅谈c++创建对象的两种方式
在C++里,有两种方法创建对象: 方法一: ClassName object(param); 这样就声明了一个ClassName类型的object对象,C++会为它分配足够的存放对象所有成员的存储空间。 注意:为节省存储空间,C++创建对象时仅分配用于保存数据成员的空间,而类中定义的成员函数则被分配到存储空间中的一个公用区域,由该类的所有对象共享。 例如,转载 2016-01-13 20:47:05 · 392 阅读 · 0 评论 -
浅谈C++中的虚析构函数
用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类: class ClxBase { public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout "Do somet转载 2016-01-13 21:00:30 · 392 阅读 · 0 评论 -
memcpy函数,我来了
简单粗暴,直接上代码。 void* Memcpy(void* dst,const void* src,size_t count) { assert(dst != NULL && src != NULL && count > 0); char* pDst = static_cast(dst); const char* pSrc = static_cast(src); while (coun转载 2016-03-02 21:42:15 · 584 阅读 · 0 评论 -
智能指针到底是个啥
当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。 智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。转载 2016-03-02 21:47:25 · 693 阅读 · 0 评论 -
简单粗暴直面实现一个Memcpy函数
//方法一:不考虑内存重叠 void* memcpy(void *dest, void *src, size_t size) { if(dest == nullptr || src == nullptr) return nullptr; void *result = dest;转载 2016-03-05 21:56:47 · 406 阅读 · 0 评论 -
八大排序算法
概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,转载 2016-07-29 18:59:09 · 350 阅读 · 0 评论