回调函数
摘要:参考资料:http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这
阅读全文
posted @
2017-07-22 18:57
已停更
阅读(249)
推荐(0) 编辑
#define const typedef
摘要:#define用法 1. 定义简单的常数:定义常量,便于修改 #define N 1000 2. 定义简单的函数:注意多使用括号 define可以像函数那样接受一些参数,如下: #define max(x,y) (x)>(y)?(x):(y) 这个定义就将返回两个数中较大的那个,看到了吗?因为这个“
阅读全文
posted @
2016-09-03 16:23
已停更
阅读(318)
推荐(0) 编辑
string类总结
摘要:头文件: <string> 初始化: 读写 操作 length和size效果一样,实现也一样 注意用sizeof(str)相当于对string类求大小,VS13输出为28 string对象中字符的处理 substr操作 string转const char * string转char *
阅读全文
posted @
2016-09-01 16:26
已停更
阅读(212)
推荐(0) 编辑
C++ 内存分配(new,operator new)详解
摘要:参考:C++ 内存分配(new,operator new)详解 如何限制对象只能建立在堆上或者栈上 new运算符和operator new() new:指我们在C++里通常用到的运算符,比如A* a = new A; 对于new来说,有new和::new之分,前者位于std operator new
阅读全文
posted @
2016-08-25 23:28
已停更
阅读(23171)
推荐(6) 编辑
c++模板与泛型编程基础
摘要:(1)定义函数模板(function template) 函数模板是一个独立于类型的函数,可以产生函数的特定类型版本。 // implement strcmp-like generic compare function template <typename T> int compare(const
阅读全文
posted @
2016-08-25 23:08
已停更
阅读(2013)
推荐(1) 编辑
模版特化
摘要:模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。 模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。 那么下面3句依次调用类模板、全特化与偏特化: 对于函数模
阅读全文
posted @
2016-08-25 20:31
已停更
阅读(477)
推荐(0) 编辑
C++多线程,互斥,同步
摘要:同步和互斥 当有多个线程的时候,经常需要去同步这些线程以访问同一个数据或资源。例如,假设有一个程序,其中一个线程用于把文件读到内存,而另一个线程用于统计文件中的字符数。当然,在把整个文件调入内存之前,统计它的计数是没有意义的。但是,由于每个操作都有自己的线程,操作系统会把两个线程当作是互不相干的任务
阅读全文
posted @
2016-08-13 16:12
已停更
阅读(28835)
推荐(3) 编辑
RAII
摘要:转载:http://www.jellythink.com/archives/101 什么是RAII? RAII是Resource Acquisition Is Initialization的简称,是C++语言的一种管理资源、避免泄漏的惯用法。利用的就是C++构造的对象最终会被销毁的原则。RAII的做
阅读全文
posted @
2016-08-12 20:53
已停更
阅读(665)
推荐(1) 编辑
volatile
摘要:就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果不加入volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。 作用 volatile的作用是: 作为指令关键字
阅读全文
posted @
2016-07-22 11:40
已停更
阅读(207)
推荐(0) 编辑
指针的指针
摘要:这块容易弄混,举几个简单例子: int ** 输出: 调试: 分析:
阅读全文
posted @
2016-07-08 13:50
已停更
阅读(183)
推荐(0) 编辑
深入理解C++的动态绑定和静态绑定
摘要:为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改
阅读全文
posted @
2016-06-28 10:23
已停更
阅读(2250)
推荐(0) 编辑
sizeof(类)
摘要:类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的。 用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小。首先:我们要知道什么是类的实例化,所谓类的实例化就是在内存中分配一块地址 用sizeof对类名操作,得到的结果是该类的对象在存储器中所占据的字节大小,由于静态成员变
阅读全文
posted @
2016-06-23 21:25
已停更
阅读(3980)
推荐(2) 编辑
private是自己私有的,protected是可以让孩子知道的,public是公开的
摘要:三种访问权限 public:可以被任意实体访问,数据成员和函数成员可在成员函数,友元,继承类中直接使用。亦可以作为接口,供类的用户使用 protected:只允许子类及本类的成员函数访问,在基类中用法同private,在类外不能被基类对象访问。在派生类中,用法同基类的public,其成员在类内可被其
阅读全文
posted @
2016-06-23 08:47
已停更
阅读(723)
推荐(0) 编辑
【转载】C++ typedef用法小结
摘要:http://www.cnblogs.com/charley_yang/archive/2010/12/15/1907384.html 第一、四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图
阅读全文
posted @
2016-06-21 09:55
已停更
阅读(207)
推荐(0) 编辑
string char * const char *之间的互相转换
摘要:string -> const char * 用str的c_str()方法或者data()方法均可,这个两个方法返回值为cong char * const char * -> string const char*转换为 string,直接赋值即可 string -> char * vs不让用strc
阅读全文
posted @
2016-06-19 21:43
已停更
阅读(659)
推荐(0) 编辑
【转载】C++之继承与多态
摘要:转自:http://www.cnblogs.com/kunhu/p/3631285.html 在程序设计领域,一个广泛认可的定义是“一种将不同的特殊行为和单个泛化记号相关联的能力”。和纯粹的面向对象程序设计语言不同,C++中的多态有着更广泛的含义。除了常见的通过类继承和虚函数机制生效于运行期的动态多
阅读全文
posted @
2016-06-12 10:18
已停更
阅读(319)
推荐(0) 编辑
抽象类指针
摘要:抽象类是为了抽象和设计的目的而建立的,处于继承层次结构的上层。 具体类是能够建立对象的类。 抽象类的规定 (1)抽象类只能用作其他类的基类,不能建立抽象类对象。 (2)抽象类不能用作参数类型、函数返回类型或显式转换的类型。 (3)可以定义指向抽象类的指针和引用,此指针可以指向它的派生类,进而实现多态
阅读全文
posted @
2016-06-01 23:57
已停更
阅读(2556)
推荐(0) 编辑
const函数
摘要:const的函数不能对其数据成员进行修改操作。 const的对象,不能引用非const的成员函数。
阅读全文
posted @
2016-06-01 23:54
已停更
阅读(691)
推荐(1) 编辑
指针和const限定符
摘要:参考:c++ primer p110 指针和const限定符 const和指针在一起有以下几种情况: 1 指向const对象的指针 这就是说指针所指的对象是const类型的,不能通过对指针的解引用修改指向对象的值,以int类型为例,比如: 指向const对象的指针有以下几种特性: 1. p只是指向c
阅读全文
posted @
2016-05-27 16:41
已停更
阅读(398)
推荐(0) 编辑
void与void *
摘要:void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型 2. 如果函数无参数,那么应声明其参数为void 3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void * 4. void不能代表一个真实的变量 void真正发挥的作用在于: 对函数返回的限定 对函数参数的
阅读全文
posted @
2016-05-27 14:23
已停更
阅读(1005)
推荐(0) 编辑