c++
Watson2016
游戏,c++,机器视觉,嵌入式,后台开发
展开
-
stl_hashtable
1 // Filename: stl_hashtable.h 2 3 // Comment By: 凝霜 4 // E-mail: mdl2009@vip.qq.com 5 // Blog: http://blog.csdn.net/mdl13412 6 7 //////////////////////////////////原创 2016-06-06 19:19:48 · 582 阅读 · 0 评论 -
C++构造函数执行顺序
经测试按照如下顺序:一、先执行静态成员的构造函数,如果静态成员只是在类定义中声明了,而没有实现,是不用构造的。必须初始化后才执行其构造函数。二、任何虚拟继承基类的构造函数按照它们被继承的顺序构造(不是初始化列表中的顺序)三、任何非虚拟继承基类的构造函数按照它们被继承的顺序构造(不是初始化列表中的顺序)四、任何成员对象的构造函数按照它们声明的顺序构造五、类自己原创 2017-09-08 10:29:49 · 2988 阅读 · 0 评论 -
c++内存布局最完整
大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑定)/接口函数的基础. 可以说: 没有虚函数, C++将变得一无是处!既然是C++的精髓, 那么我们有必要了解一下她的实现方式吗? 有必要! 既然C++是从C语言的基础上发展转载 2017-03-31 22:29:21 · 5683 阅读 · 5 评论 -
计算机内存地址对齐与类大小
计算机内存中的对齐一、什么是对齐,以及为什么要对齐⒈现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。⒉对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些原创 2017-03-29 22:33:02 · 916 阅读 · 0 评论 -
c++11十个常用新特性
在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛。不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备。你也许看到过许多类似介绍各种C++11特性的文章。下面是我总结的,C++开发者都需要学习和使用的C++11新特性。 auto在C++11之前,auto关键字用来指定存储期。在新标准中,它的功能变为类型推断。auto现在成了一个类转载 2017-03-29 17:15:01 · 1297 阅读 · 0 评论 -
c++成员函数之static和const作用
一,静态成员函数 1.静态成员函数的地址(内存中真正地址)可用普通函数指针储存,而普通成员函数地址需要用 类成员函数指针来储存。举例如下: class base{ static int func1(); int func2(); }; int (*pf1)()=&base::func1;//普通的函数指针 int (base::*pf2)()=&base::原创 2017-01-06 15:15:41 · 1164 阅读 · 0 评论 -
struct用法及其构建网络传输报文
struct用法深入探索 作者: Cloudward 1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区转载 2016-12-15 17:22:36 · 1507 阅读 · 0 评论 -
函数指针与函数对象详解
详解C/C++函数指针要理解一个C程序,仅仅理解组成该程序的符号是不够的。程序员还必须理解这些符号是如何组合成声明、表达式、语句和程序的。 我们先来看看下面的一个语句:1( *( void(*)())0)(); 这是当计算机启动时,硬件将调用首地址为0位置的子例程原创 2016-11-02 09:57:07 · 606 阅读 · 0 评论 -
C++ 的新标准 C++11:右值引用与转移语义
原文地址:http://www.ibm.com/developerworks/cn/aix/library/1307_lisl_c11/ C++ 的新标准 C++11 已经发布一段时间了。本文介绍了新标准中的一个特性,右值引用和转移语义。这个特性能够使代码更加简洁高效。新特性的目的右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代转载 2016-10-20 11:36:43 · 505 阅读 · 0 评论 -
std::bind和std::function详解
std::function在看Cocos2d-x的范例代码时,随处可见“很奇怪”的语法:static std::functionLayer*()> createFunctions[] ={ CL(CameraTest1), //...};其中CL是一个宏,对应如下lambda表达式:#define CL(__className__) [](){ retu原创 2016-10-20 09:42:11 · 3198 阅读 · 0 评论 -
new出的对象数组必须要用delete[]删除,而普通数组和结构数组delete和delete[]都一样
为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-----_CrtMemBlockHeader 温馨提示:该文所有测试没有特殊说明都是在Debug模式下!用的是VS2010编译器!======转载 2016-10-25 17:06:45 · 15683 阅读 · 1 评论 -
C++ 开发 Web 服务框架 - HTTPS 的原理及其 Web 框架的设计与实(三)
C++ 开发 Web 服务框架 - HTTPS 的原理及其 Web 框架的设计与实现一、概述项目介绍服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。本次项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。项目涉及的知识点C+转载 2016-09-02 17:06:42 · 7205 阅读 · 3 评论 -
C++ 开发 Web 服务框架 - HTTP Web 框架的设计与实现(二)
C++ 开发 Web 服务框架 - HTTP Web 框架的设计与实现一、概述项目介绍服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。本次项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。项目涉及的知识点C++基本知识转载 2016-09-02 17:01:30 · 11541 阅读 · 6 评论 -
C++ 开发 Web 服务框架 - 基础知识:C++11 与 Boost Asio(一)
C++ 开发 Web 服务框架 - 基础知识:C++11 与 Boost Asio一、概述项目介绍服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。本次项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。项目涉及的知识点C++原创 2016-09-02 16:57:54 · 10369 阅读 · 1 评论 -
c++书籍推荐
首先肯定要读一读Bjarne Stroustrup的The Design and Evolution of C++,了解一下这个语言的历史。接下来就可以看别的书了,但要不停地回头看这本书,看到你不断地学到的新技术是怎么样一点点地被接纳到这个语言中去的。第一本书因人而异,基础好一些的,可以看Stanley B. Lippman的C++ Primer,这本书非常地巨大,你打星号转载 2016-07-05 17:02:55 · 501 阅读 · 0 评论 -
hash_set
1 // Filename: stl_hash_set.h 2 3 // Comment By: watson 4 6 7 // hash_set和hash_multiset是对hashtable的简单包装, 很容易理解 8 9 /* 10 * Copyright (c) 1996 11 * Silicon Graphics Computer Sy原创 2016-06-06 19:22:02 · 472 阅读 · 0 评论 -
智能指针shared_ptr实现
若要使用到项目, 请将 引用计数类 的引用计数增减使用原子操作. 以下代码有些细节问题, 修正后的代码参见: https://gist.github.com/2986880namespacesmart{ // 引用计数类. classsmart_count { public:转载 2017-03-29 16:10:16 · 471 阅读 · 0 评论