C/C++
peng864534630
这个作者很懒,什么都没留下…
展开
-
工业相机采集帧回调函数
相机帧回调函数的定义原创 2017-04-07 22:16:58 · 8028 阅读 · 0 评论 -
关于静态成员函数
关于静态成员函数 静态成员是受到private限定符的作用的,若用private修改,不可外部访问的 static对象如果出现在类中,那么该对象即使从未被使用到,它也会被构造以及析构。而函数中的static对象,如果该函数从未被调用,这个对象也就绝不会诞生,但是在函数每次被调用时检查对象是否需要诞生。下面详细说说static的功能以及它的来龙去脉:stati原创 2017-09-19 14:02:55 · 7982 阅读 · 1 评论 -
构造函数调用顺序
构造函数调用顺序: class B1 { public: B1(int i){cout<<"constructing B1"<<i<<endl;} }; class B2 { public: B2(int j){cout<<"constructing B2"<<j<<endl;} }; class B3 { public: B3(){cout<原创 2017-09-19 14:46:23 · 3899 阅读 · 0 评论 -
虚表指针初始化
转自:http://blog.csdn.net/lingfengtengfei/article/details/123458091.虚函数·虚表是怎么实现的?虚表存放在哪里?·虚表中的数据是在什么时候确定的?·对象中的虚表指针又在什么时候赋值的?我们很难通过 C++语言本身来找到答案。 C++标准给编译器实现者定义了语法规范,但是被并没有定义如何实现这些转载 2017-09-11 19:16:51 · 2943 阅读 · 1 评论 -
std::bind与std::function
转载链接:http://www.cnblogs.com/slysky/p/3822640.htmlc++11特性与cocos2d-x 3.0之std::bind与std::function昨天同事让帮忙写一小功能,才发现cocos2d-x 3.0 和 cocos2d-x 3.0rc0 差别还是相当大的。发现Label这一个控件,3.0就比rc0版本多了一个创建函数,更为关键的是3.转载 2017-09-19 22:03:04 · 417 阅读 · 0 评论 -
运算符重载 前缀++ 后缀++
运算符重载: 运算符与类结合,产生新的含义。 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义)怎么实现运算符的重载?方式:类的成员函数 或 友元函数(类外的普通函数)规则:不能重载的运算符有 . 和 .* 和 ?: 和 :: 和 sizeof友元函数和成员函数的使用场合:一般情况下,建议一元运算符原创 2017-09-20 09:55:45 · 6298 阅读 · 0 评论 -
重载 覆盖 隐藏
1.重载是一个类内部实现相同机理的操作,但是操作的对象不同。主要体现在: 方法在同一个类中重载的方法名称相同参数不同(参数的类型不同,参数的个数不同)virtual关键字可有可无2.覆盖,就是面向对象中的多态,是子类的方法覆盖了基类的方法,以实现不同的功能,或者对父类的功能进行扩充。主要体现在:派生类函数覆盖基类函数不同的范围(分别位于派生类和基类中)函原创 2017-09-20 10:33:58 · 281 阅读 · 0 评论 -
STL中string中c_str(),data(),copy()
标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。1. c_str():生成一个const char*指针,指向以空字符终止的数组。注:①这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失效。因此要么现用先转换,要么把它的数据复制到用户自己可以管理的内存中。注意。原创 2017-07-06 10:38:26 · 842 阅读 · 0 评论 -
STL 中容器
在STL中基本容器有: vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历起来效果也原创 2017-07-19 16:01:09 · 263 阅读 · 0 评论 -
const与constexpr
关键字 constexpr 于 C++11 中引入并于 C++14 中得到改善。它表示常数表达式。与 const 相同,它可应用于变量,因此如果任何代码试图修改该值,均将引发编译器错误。与const 不同,constexpr 也可应用于函数和类构造函数。 constexpr 指示值或返回值是常数,并且如果可能,将在编译时计算值或返回值。1constexpr 变量const 和 co原创 2017-09-11 09:50:37 · 414 阅读 · 0 评论 -
C++ 11 override final
类被final修饰,不能被继承[cpp] view plain copyprint?class A1 final { }; class B1 : A1 { }; // “B1”: 无法从“A1”继承,因为它已被声明为“final” class A1 final { };class B1 : A1 { }; // “B1”: 无法从“A1原创 2017-09-10 21:30:06 · 348 阅读 · 0 评论 -
static_cast、dynamic_cast、const_cast和reinterpret_cast总结
static_cast、dynamic_cast、const_cast和reinterpret_cast总结转载 2017-04-08 10:54:35 · 224 阅读 · 0 评论 -
关于容器queue和deque
queue 例程1:[cpp] view plain copyprint?#include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { queueint> myQueue;转载 2017-05-09 22:48:13 · 453 阅读 · 0 评论 -
C++ STL中sort和C中qsort比较
C++ STL中sort用法(#include)一、sort(begin, end, method); sort() 目前采用的是加强版的快速排序, 是结合内插排序的快速排序 目的在于克服快速排序在最初情况(元素基本有序)的效率底下。1. sort中method 缺省用法:从小到大排序int a[] = { 2, 3, 10, 7, 8, 1, 0, 12原创 2017-07-04 16:03:43 · 530 阅读 · 0 评论 -
关于STL中的堆栈Stack
堆栈是一个线性表,插入和删除只在表的一端进行。这一端称为栈顶(Stack Top),另一端则为栈底(Stack Bottom)。堆栈的元素插入称为入栈,元素的删除称为出栈。由于元素的入栈和出栈总在栈顶进行,因此,堆栈是一个后进先出(Last In First Out)表,即 LIFO 表。 C++ STL 的堆栈泛化是直接通过现有的序列容器来实现的,默认使用双端队列deque的数据结构,原创 2017-06-14 15:24:30 · 701 阅读 · 0 评论 -
断点调试原理
调试断点原理 调试断点,依赖于父进程和子进程之间的通信,打断点实际是在被调试的程序中,改变断点附近程序的代码,这个断点使得被调试的程序,暂时停止,然后发送信号给父进程(调试器进程),然后父进程能够得到子进程的变量和状态。达到调试的目的。 修改断点附近程序的指令地址为0xcc,这个地址的指令就是int 3,含义是,是当前用户态程序发生中断,告诉内核当前程序有断点,那么内核原创 2017-08-21 15:55:19 · 5268 阅读 · 0 评论 -
构造函数可以抛出异常、析构函数不可也不能抛出异常
一、构造函数可以抛出异常#include using namespace std;class Inner{public:Inner(){cout<<"Inner()/n";}~Inner(){cout<<"~Inner()/n";}};class Outer{private:int m_Value;Inner inner1;publ原创 2017-08-15 16:00:59 · 1042 阅读 · 0 评论 -
c语言变长结构体
1.什么是变长数组struct MyData { int nLen; char data[0];}; sizeof(MyData)=4;可能有的编译器不支持char data[0];需要用char data[1];代替,这样上面结构体大小是sizeof(MyData)=8(字节对齐);在上结构中,data是一个数组名;但该数组没有元素;该数组的真实地址紧随结构原创 2017-08-27 15:48:34 · 8911 阅读 · 2 评论 -
函数重载:仅根据函数返回值类型不能实现重载
函数的两个要素:参数与返回值。如果同名函数的参数不同(包括类型、顺序不同),那么容易区别出它们是不同的函数。如果同名函数仅仅是返回值类型不同,有时可以区分,有时却不能。例如:void Function(void);int Function (void);上述两个函数,第一个没有返回值,第二个的返回值是int 类型。如果这样调用函数:int x = Funct原创 2017-09-13 16:11:25 · 5497 阅读 · 1 评论 -
进程与线程
一、进程:进程:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。 由程序段、相关的数据段和PCB三部分构成了进程实体(又称进程印像),一般,我们把进程实体就简称为进程。进程控制块(PCB):PCB不但可以记录进程的属性信息,以便操作系统对进程进行控制和管理,而且PCB标志着进程的存在,操作系统根据系统中是否原创 2017-08-27 21:42:08 · 544 阅读 · 0 评论 -
常用字符串函数原理及实现
1.函数名称: memchr字符串函数实现,防止memchr函数重载,定义为memchr_m函数在buffer指向的数组的count个字符的字符串里查找ch 首次出现的位置。返回一个指针,指向ch 在字符串中首次出现的位置, 如果ch 没有在字符串中找到,返回NULL。2.函数名称: strstr(s1,s2) 函数说明:用于在字符串中查找子串,函数返回s2在s1中第一次出现的字符串地址,若s1中没有找到s2,返回NULL,若s2为空,则返回s1.3. 函数名称:char *strchr(c原创 2017-04-20 10:11:05 · 549 阅读 · 0 评论 -
静态编译,动态编译,静态链接库,动态链接库
1.定义 LIB文件中包含函数代码本身,在编译时直接将代码加入程序当中。称为静态链接库static link library。 LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。 静态链接库包括两个文件: (1).h头文件,包含静态链接库中说明输出的类或符号原型或数据结构原创 2017-10-12 17:04:17 · 1207 阅读 · 0 评论