1禁止在头文件中定义变量2禁止在extern “C”中包含头文件,否则会导致extern “C”嵌套,嵌套太多导致编译错误3每个模块提供多个.c文件,在同一目录下,目录名为模块名,并提供一个.h文件4
C++很多类库都喜欢用回调函数,MFC中的定时器,消息机制,hook机制等待,包括现在在研究的cocos2d-x中也有很多的回调函数。1.回调函数什么是回调函数呢?回调函数其实就是一个通过函数指针调用
C++是面向对象的语言,对象是类的实例。C++程序员把重点放在称为“类”的用户自定义类型上。 C++中的类是由C的结构演变而来的,结构是由其他类型相关元素组成的一种聚合数据类型。比如下面就是一个结构
C++11系列-改进的类型推导:auto、decltype和新的函数语法C++11引入了一些新的实用的类型推导能力,这意味着你可以花费更少的时间去写那些编译器已经知道的东西。当然有些时候你需要帮助编译
理解Hash 哈希表(hash table)是从一个集合A到另一个集合B的映射(mapping)。 映射是一种对应关系,而且集合A的某个元素只能对应集合B中的一个元素。但反过来
decltype与auto关键字一样,用于进行编译时类型推导。decltype实际上有点像auto的反函数,auto可以让你声明一个变量,而decltype则可以从一个变量或表达式中得到类型,例如:i
一.缓冲区知识1.什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的
capacity和size理解capacity和size的区别非常重要,容器的size是指已经保存在容器中的数据的个数,而容量是指在不再重新分配内存的前提下容器最大可以包含的数据的个数。举个例子:容量
本篇文章我们说明如何添加属性(attribute)。属性是OO中的一个词汇,在C++语法中,应该叫数据成员。这里我们尽量使用OO中的属性一词。打开属性窗口有两种方法:1.双击类图中的对应类框图,选择【
已经连续两篇文章说明右值引用和数据移动的概念,今天说明它们的应用场景。我们以std::swap为例进行说明。假设有下面的数据类:struct TestData{ TestData(int _s
接下来就是报名了。实际的高考报名是在前一年的年底,为了简化我们移到考试之前。以下是时序图。Student通过调用AdmissionOffice的registerStudent方法来实现报名。如果成功会
两个小问题解决记录:XCode中多Target时CFBundleDisplayName的多语言本地化;用C++写socket程序时编译错误说read和write找不到 第一个:在XCode同一个项目里
关于位图数据怎么4字节对齐:假如一张2*2的RGB图片如下:那么它在内存中数据理论应该为(图片数据在内存中是连续的,也就是说一行数据紧接着另一行数据,这里为了直观所以布局成这样)(0xFF 0x00
我一直以为,开发者的能力基本上就可以认为是一次把事情做成的能力。而一次把事情做成至少需要看准需求,选好道路,稳妥实现三个步骤。大致可以认为,看准需求是要求的是对事物系统的把握能力,选道路系统分解的能力
这里并没不是讨论大学课程中所学的《编译原理》,只是写一些我自己对C++编译器及链接器的工作原理的理解和看法吧,以我的水平,还达不到讲解编译原理(这个很复杂,大学时几乎没学明白)。要明白的几个概念:
先列举C++中的默认函数:默认成员函数:1.默认构造函数;2.默认析构函数;3.拷贝构造函数;4.拷贝赋值函数;5.移动构造函数;6.移动拷贝函数;默认操作符函数:1.operator;2.op
c++ 使用socket实现C/S端文件的下载传输首先是服务器端,大致说下流程:服务器创建线程去处理应答accept(),当接受到客户端连接请求时,首先获取要发送的指定的文件数据总大小给客户端,接着就
简介以下三行代码有什么区别?int a[10]; int *a = (int*)malloc(sizeof(int)*10); int *a = new int[10];第一行代码定义a为包含10个i
第1章 容器第1条:慎重选择容器类型。标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器sli
为什么要使用线程池? 目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短。