
c++
文章平均质量分 82
igaozh
这个作者很懒,什么都没留下…
展开
-
C++的explicit构造函数
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); ...原创 2012-12-13 15:59:44 · 94 阅读 · 0 评论 -
匿名namespace的作用以及它与static的区别
一。匿名namespace的作用在C语言中,如果我们在多个tu(translation unit)中使用了同一个名字做为函数名或者全局变量名,则在链接阶段就会发生重定义错误,为了解决这个问题,我们可以在定义这些标识符 (identifier)的时候加上static关键字修饰以限制它只在一个tu范围内可见。C++继承了C语言中static关键字的 这个用途,我们依旧可以使用...原创 2012-12-20 17:24:33 · 550 阅读 · 0 评论 -
二维指针*(void **)的研究(uC/OS-II案例)
原文 : http://blog.youkuaiyun.com/fanwei326/article/details/6127091 东莞权智集团 范伟 mail: fanwei326@163.com; wfan@gsl.com.cn 本文若有错误之处,欢迎来信指正。 uC/OS-II内存管理函数内最难理解的部分就是二维指针,本文以图文并茂的方式对二维指针...原创 2012-12-19 22:20:12 · 248 阅读 · 0 评论 -
C++类型萃取技术
Traits技术可以用来获得一个 类型 的相关信息的。 首先假如有以下一个泛型的迭代器类,其中类型参数 T 为迭代器所指向的类型: template <typename T> class myIterator { ... }; 当我们使用myIterator时,怎样才能获知它所指向的元素的类型呢?我们可以...原创 2012-12-19 15:16:04 · 136 阅读 · 0 评论 -
数值压缩存储方法Varint
转自:http://www.cnblogs.com/smark/archive/2012/05/03/2480034.html在编写网络通讯的时候我们经常需要把一些数据存储到byte[]中然后再发送出去,数值则是我们经常处理的数据成员。发越少的东西意味着使用更少的IO和带宽 ,所以对传输数据进行压缩也是件非常重要的事情。接下来提到的就是一种基于数字存储的方式在大多数情况下可以节省数值存储空间。...原创 2012-12-19 14:35:13 · 201 阅读 · 0 评论 -
TypeList
转自:http://blog.youkuaiyun.com/hhygcy/article/details/3339176其他:http://blog.youkuaiyun.com/gxut555/article/details/7454329 假设你有若干个类,现在你希望给每个类分配一个唯一的ID。最简单的方法无非是手工的为这个类添加一个id,前提是你确信给这个类的id与其它类的id没有冲...原创 2012-12-19 13:49:38 · 265 阅读 · 0 评论 -
template <unsigned int N>
详见:http://stackoverflow.com/questions/499106/what-does-template-unsigned-int-n-mean You can have several kinds of template parameters Type Parameters.TypesTemplates (only classes, no fu...原创 2012-12-19 11:51:45 · 450 阅读 · 0 评论 -
三种的allocator实现源代码的对比
转自:http://blog.youkuaiyun.com/eagleatustb/article/details/8031549 最近看空间配置器的内容,把ACE的ACE_Allocator类实现,SGI的allocator类实现和MS的allocator实现也参考了侯捷先生的《STL源码剖析》,有不少收获。 我听说是有说明STL中allocator实现标准的...原创 2012-12-18 19:55:50 · 188 阅读 · 0 评论 -
结构体内变量相对便宜与list_entry()宏
#define list_entry(ptr, type, member) \ ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) ptr是指向list_head类型链表的指针,type为一个结构,而member为结构type中的一个域,类型为list_head,这...原创 2012-12-18 17:59:56 · 156 阅读 · 0 评论 -
声明与函数、函数指针---(*(void (*)( ) )0)( ) 解析
概述 在很多情况下,尤其是读别人所写代码的时候,对 C语言声明的理解能力变得非常重要,而C语言本身的凝练简约也使得C语言的声明常常会令人感到非常困惑,因此,在这里我用一篇的内容来集中阐述一下这个问题。 问题:声明与函数 有一段程序存储在起始地址为 0的一段内存上,如果我们想要调用这段程序,请问该如何去做? 答案 答案是 ...原创 2012-12-18 17:33:01 · 154 阅读 · 0 评论 -
c++模板(类型依赖)说明例子
#include <iostream>#include <list>template <typename T>class CCustomerList{public: void push(T item) { m_customer.push_back(item); } void show_item() { C...原创 2012-12-18 16:57:17 · 315 阅读 · 0 评论 -
C++中三种new的用法
我评价自己的C++水平还未入门的确不够准确,应该是远远未入门。感叹自己看书的时候如此粗心,C++Coder最基本的placement new的知识,今天才明白。 如何在new一个对象的时候,使对象的空间并不在堆上分配,而是由使用者传入一个缓冲区给对象使用,且编译期会自动调用对象的构造函数? new这个C++头文件中(注意,是new,不是new.h),定义了一个全局的重载了...原创 2012-12-18 16:44:44 · 209 阅读 · 0 评论 -
C++,永久改变你写异常安全代码的方式(神奇的Loki::ScopeGuard)
作者:Andrei Alexandrescu and Petru Marginean原文地址:http://www.ddj.com/cpp/184403758翻译,裁剪,修改:purewinter转:http://blog.youkuaiyun.com/purewinter/article/details/1860875注:裁剪修改只是为了让更多csdn上的读者不会因为此文太长而放弃...原创 2012-12-17 20:19:05 · 182 阅读 · 0 评论 -
C++的make_pair函数
Pairs C++标准程序库中凡是“必须返回两个值”的函数, 也都会利用pair对象 classpair可以将两个值视为一个单元。容器类别map和multimap就是使用pairs来管理其健值/实值(key/value)的成对元素。 pair被定义为struct,因此可直接存取pair中的个别值.两个pairs互相比较时, 第一个元素正具有较高的优先...原创 2012-12-17 17:19:09 · 1105 阅读 · 0 评论 -
C++的原子操作
在多进程(线程)访问资源时,能够确保所有其他的进程(线程)都不在同一时间内访问相同的资源。 原子操作:UP和SMP的异同 ----------------------------------------------------------- 原子操作是不可分割的,在执行完毕不会被任何其它任务或事件中断。在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作...原创 2012-12-20 17:43:25 · 281 阅读 · 0 评论