随笔分类 -  C++

模板特化
摘要:templateclass Compare{public: static bool IsEqual(const T& lh, const T& rh) { return lh == rh; }};View Code1) 特化为绝对类型 int i1 = 10;... 阅读全文

posted @ 2014-10-24 09:05 kangbry

C++类型转换
摘要:const_cast 去掉类型的const或volatile属性。 struct SA { int i; }; const SA ra; //ra.i = 10; //直接修改const类型,编译错误 SA &rb = const_castSA&>(ra); rb.i = 10;... 阅读全文

posted @ 2014-10-24 00:11 kangbry

static
摘要:1. 静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量 1) 该变量在全局数据区分配内存; 2) 未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化); 3) 静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见... 阅读全文

posted @ 2014-10-24 00:08 kangbry

指针
摘要:int * &c = a;//这里c是一个引用,它是指针a的引用int & *d;//这里d是一个指针,它指向引用,但引用不是实体,所以这是错误的int* const p 特点是指针指向的数值可以改变,然而指针所保存的地址却不可以改变const int* p 特点是指针所保存的地址可以改变,然而指针... 阅读全文

posted @ 2014-10-23 17:36 kangbry

友元
摘要:友元是一种定义在类外部的普通函数或类,但他需要在类体内进行说明,为了和该类的成员函数加以区别,在说明时前面加以关键字friend。友元能够访问类中的私有成员。友元的作用在于提高程式的运行效率,但是,他破坏了类的封装性和隐藏性,使得非成员函数能够访问类的私有成员友元函数(可以使类的成员函数): 友元函... 阅读全文

posted @ 2014-10-23 17:27 kangbry

public,private,protected
摘要:类的private和protected成员,在类外是不可以使用的.只有public成员可以在类外直接使用class A{public: int a;protected: int b;private: int c;};int _tmain(int argc, _TCHAR* argv... 阅读全文

posted @ 2014-10-23 16:33 kangbry

c++内存管理
摘要:在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 堆,就是那些由new分配的内存块... 阅读全文

posted @ 2014-10-23 01:14 kangbry

虚函数
摘要:C++中不能被声明为虚函数 普通函数(非成员函数),构造函数,内联成员函数,静态成员函数,友元函数。 1) 虚函数用于基类和派生类,普通函数所以不能 2) 构造函数不能是因为虚函数采用的是虚调用的方法,允许在只知道部分信息的情况的工作机制,特别允许调用只知道接口而不知道对象的准确类型的方法,但是调... 阅读全文

posted @ 2014-10-22 15:17 kangbry

构造函数析构函数
摘要:一个没有实例化的空类,编译器是不会给它生成任何函数的,当实例化一个空类后,编译器会根据需要生成相应的函数1) 默认构造函数 2) 拷贝构造函数 3) 析构函数4) 赋值构造函数5) 取地址运算符函数class empty{public: empty(){}; ~empty(){}; ... 阅读全文

posted @ 2014-10-22 11:37 kangbry

单链表逆置
摘要:typedef int DataType;typedef struct node{ DataType data; struct node* next;}LinkedNode,*LinkList;void ReverseList(LinkedNode* pCur,LinkList& Lis... 阅读全文

posted @ 2014-10-21 23:17 kangbry

内存拷贝实现
摘要:void* _memove(void* dest,const void*src,size_t count){ assert((dest != NULL) && (src != NULL)); assert(count>0); char* psrc = (char*)src; ... 阅读全文

posted @ 2014-10-21 17:19 kangbry

string实现
摘要:class _string{public: _string(const char* str=NULL); _string(const _string& another); ~_string(); _string& operator=(const _string & rhs);... 阅读全文

posted @ 2014-10-21 15:28 kangbry

valgrind内存检测
摘要:valgrind--tool=memcheck ./程序名memcheck工具可以保证我们正确的内存使用。不加其他参数,valgrind会打印出调用call和malloc的一个概括信息valgrind --leak-check=full ./程序名如果alloc和free的数目不同,你需要用选项--... 阅读全文

posted @ 2014-10-20 23:31 kangbry

gdb调试
摘要:gdb FILE 调试程序gdb run 运行程序gdb list 查看代码break num 设置断点breac function info b 查看断点 delete b 删除断点break operator(函数名) 条件断点step 单步 next 往下执行 finish 退出函数info ... 阅读全文

posted @ 2014-05-18 20:41 kangbry 阅读(267) 评论(0) 推荐(0)

c++基础知识点
摘要:1,vector,list,deque的实现。 vector是一块连续内存,当空间不足了会再分配。 list是双向链表。 map封装红黑树 deque是双端队列可在头和尾部插入、删除元素。2,红黑树特性 a. 节点不是red 就是black b. root为black c. 所有的leaf为bla... 阅读全文

posted @ 2014-04-17 23:57 kangbry

boost_thread
摘要:互斥量 1. mutex,独占式互斥量 a) 对象创建后表示一个互斥量 b) 成员函数lock()用于线程阻塞等待直到获得互斥量的所有权(即锁定) c) try_lock()尝试锁定互斥量,如果锁定成功返回true,否则返回false,它是非阻塞的 d) 线程使用完成共享资源后应该及时使用unlock解除对互斥量锁定 2. try_mutex,同mutex,兼容以前版本 3. timed_mutex,基本功能同mutex,提供超时锁定功能 a) 成员函数timed_lock(),阻塞等待一定时间试图锁定互斥量,如果时间到还未锁定到返回false,等待的时间可以是绝对时间,也可以是从当前开始的相 阅读全文

posted @ 2012-10-16 12:19 kangbry 阅读(318) 评论(0) 推荐(0)

boost_asio
摘要:asio前摄器模式(Proactor) 1.封装select,poll/epoll,kqueue,overlapped i/o机制 2.实现异步io模型 3.异步模式下,程序发起io请求,同时定义一个用于回调的完成处理函数,像io_service提交请求 4.io_service同样把io操作转交给操作系统执行,但它不同步等待,而是立即返回 5.程序调用io_service的run成员函数等待异步操作完成 6.异步操作完成时io_service从操作系统获取执行结果,调用完成处理函数 7.asio使用自己定义的线程概念strand 8.asio使用的缓冲区由mutable_buffer和con 阅读全文

posted @ 2012-10-16 12:17 kangbry 阅读(250) 评论(0) 推荐(0)

导航