C++
文章平均质量分 78
tyq101010
我是一个程序员
展开
-
函数指针回调函数
C/C++之回调函数 今天讨论下C/C++中的回调函数。 在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函转载 2015-07-22 17:29:15 · 326 阅读 · 0 评论 -
STL map常用操作简介
2。map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。3。map的功能自动建立Key - value的对应。key 和 value可以是任意你需要的类型。根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,原创 2015-07-23 17:00:16 · 306 阅读 · 0 评论 -
C++初始化函数列表详细解析
C++可以定义引用类型的成员变量,引用类型的成员变量必须在构造函数的初始化列表中进行初始化在以下三种情况下需要使用初始化成员列表:一,需要初始化的数据成员是对象的情况;二,需要初始化const修饰的类成员;三,需要初始化引用成员数据;原因:C++可以定义引用类型的成员变量,引用类型的成员变量必须在构造函数的初始化列表中进行初始化。对于类成原创 2016-07-24 21:44:14 · 735 阅读 · 1 评论 -
模板类的实现语法
一、定义一个模板类声明templateclass Complex;templateComplex MySub(Complex a, Complex b);templateclass Complex{ friend Complex MySub(Complex a, Complex b); friend ostream& operator(ostream &out, const原创 2016-02-28 21:09:29 · 938 阅读 · 0 评论 -
数组的首地址和数组的第一个元素的首地址和数组做函数参数的退化问题
1.数组的地址和数组首元素的地址是一样的。既然地址都是一样为什么还会有这样的问题呢?那么数组的地址指向的内存空间的类型是数组,而数组首元素的地址指向的内存空间的类型的首元素的类型。int main(){ int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; //&a地址获得的是数组这个变量的首地址,而a是数组第一个元素的地址 printf("原创 2016-01-09 23:01:44 · 1628 阅读 · 0 评论 -
C++文件读写详解(ofstream,ifstream,fstream)
在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view plaincopyprint?#include ofstream //文件写转载 2015-12-01 15:51:00 · 294 阅读 · 0 评论 -
C++命名空间的使用
命名空间:People类:Student方法:printDemo();Student.h注意:#includeusing namespace std; namespace People{ class Student { private: int id; int age; public: Student(int id, int age); ~St原创 2015-11-05 10:04:38 · 432 阅读 · 0 评论 -
C++ Virtual总结
虚函数表C++中的虚函数的实现一般是通过虚函数表(C++规范并没有规定具体用哪种方法,但大部分的编译器厂商都选择此方法)。类的虚函数表是一块连续的内存,每个内存单元中记录一个JMP指令的地址。注意的是,编译器会为每个有虚函数的类创建一个虚函数表,该虚函数表将被该类的所有对象共享。类的每个虚成员占据虚函数表中的一行。如果类中有N个虚函数,那么其虚函数表将有N*4字节的大小。原创 2015-10-11 17:26:15 · 339 阅读 · 0 评论 -
C++ 虚函数与纯虚函数的区别
C++虚函数与纯虚函数用法与区别(转)1. 虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstract class),而只含有虚函数的类(class)不能被称为抽象类(abstract class)。 2. 虚函数可以被直接使用,也可以被子类(sub class)重载以后以多态的形式调用,而纯虚函数必须在子类(sub class)中实现该函数才转载 2015-10-23 14:52:32 · 311 阅读 · 0 评论 -
C++中的虚函数的底层机制
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的转载 2015-10-23 16:39:00 · 488 阅读 · 1 评论 -
C++静态变量使用方法
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以是Public,Private,Protected;Public的静态成员可以通过双冒号来使用即::。 在C++转载 2015-07-23 17:12:03 · 974 阅读 · 0 评论 -
C++线程池
咳咳。c++11 加入了线程库,从此告别了标准库不支持并发的历史。然而 c++ 对于多线程的支持还是比较低级,稍微高级一点的用法都需要自己去实现,譬如线程池、信号量等。线程池(thread pool)这个东西,在面试上多次被问到,一般的回答都是:“管理一个任务队列,一个线程队列,然后每次取一个任务分配给一个线程去做,循环往复。” 貌似没有问题吧。但是写起程序来的时候就出问题了。废话不多说,转载 2015-07-22 18:56:42 · 443 阅读 · 0 评论 -
回调函数_解析
回调函数 在看LWIP时,见到用回调函数,再看某老外公司OPC源代码时,见到用回调函数。看我国内某些代码(我公司软件等)时没用到。于是,我对回调函数产生了很大的好奇。以前,我写VC程序时用到过回调函数,但是没有用C语言来使用。最近,看到国外大量的经典代码中广泛使用了回调函数(LWIP、某两个公司的OPC程序等),都是C语言来实现的,而不是VC windows程序中别人实现自己使用的那种。转载 2015-07-22 17:49:26 · 384 阅读 · 0 评论 -
指针数组 数组指针 数组名本质 二维数组名本质
【知识点总结】1.数组名表示数组的第一个元素的地址。2.&a(a是一个数组)是数组的地址。3.指针数组是一个数组,它的元素是指针。4.数组指针是一个指针,它指向一个数组。5.二维数组的元素是一维数组6.二维数组数组名的本质是一个指向一维数组的数组指针譬如:a[2][3] - -》那么a是二维数组首元素的地址,本质是 int(*ptr)[3原创 2016-01-10 23:29:12 · 589 阅读 · 0 评论