
C++
Newtown-Gao
这个作者很懒,什么都没留下…
展开
-
QSettings 从注册表读取网关
QSettings *reg = new QSettings("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\Tcpip\\Parameters\\Interfaces\\",QSettings::NativeFormat); QStringList groupsList=reg->childGroups(); q原创 2015-01-07 14:16:47 · 920 阅读 · 0 评论 -
数组和指针的区别
C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。下面以字符串为例比较转载 2016-02-29 11:04:00 · 375 阅读 · 0 评论 -
STL之set集合容器
set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值;另外,还得确保根节点的左子树的高度与有字数的高度相等,这样,二叉树的高度最小,从而检索速度最快。要注意的是,它不会重复插入相同键值的元素,而采取忽略处理。转载 2015-09-11 15:10:56 · 337 阅读 · 0 评论 -
new 、operator new 和 placement new 区别
(1)new :不能被重载,其行为总是一致的。它先调用operator new分配内存,然后调用构造函数初始化那段内存。new 操作符的执行过程:1. 调用operator new分配内存 ;2. 调用构造函数生成类对象;3. 返回相应指针。(2)operator new:要实现不同的内存分配行为,应该重载operator new,而不是new。operator原创 2015-07-23 10:35:47 · 480 阅读 · 0 评论 -
hash_map和map的区别
这里列几个常见问题,应该对你理解和使用hash_map比较有帮助。4.1 hash_map和map的区别在哪里?构造函数。hash_map需要hash函数,等于函数;map只需要比较函数(小于函数).存储结构。hash_map采用hash表存储,map一般采用红黑树(RB Tree)实现。因此其memory数据结构是不一样的。4.2 什么时候需要用hash_map,什么时候需要用m转载 2015-09-02 17:30:35 · 1070 阅读 · 0 评论 -
类的非静态成员函数指针详解
From:http://blog.youkuaiyun.com/hairetz/archive/2009/05/06/4153252.aspx个人感觉对于类的成员函数指针这块讲解的比较深入详细推荐阅读///////////////////////////////////////////////// 先看这样一段代码 class test { public:转载 2015-09-11 14:02:15 · 1623 阅读 · 0 评论 -
LoadLibraryA加载dll失败
当A.dll 内部实现依赖B.dll 时,当用LoadLibraryA(A.dll)时,要将B.dll放在同一目录,否则会加载失败原创 2015-09-07 15:43:55 · 1605 阅读 · 0 评论 -
Qt信号与槽实现原理
有网友抱怨:哪个大牛能帮帮我,讲解一下信号槽机制的底层实现?不要那种源码的解析,只要清楚的讲讲是怎么发送信号,怎么去选择相应的槽,再做出反应。也就是类似于一个信号槽的相应流程。。。求解啊!!!看了源码,真的是一头雾水。。。撞墙的心都有了~~~~ 本文使用 ISO C++ 一步一步实现了一个极度简化的信号与槽的系统 (整个程序4个文件共121行代码) 。希望能有助于刚进入Qt世界的C++转载 2015-09-10 16:37:17 · 20910 阅读 · 11 评论 -
std::async
// async example#include // std::cout#include // std::async, std::future// a non-optimized way of checking for prime numbers:bool is_prime (int x) { std::cout << "Calculating. Please, wait...\n"; for原创 2015-09-02 15:13:22 · 818 阅读 · 0 评论 -
数据库连接池与异步回调
负责逻辑处理的Server模块需要数据库模块异步载入用户数据,并做后续处理计算。数据库模块一般拥有一个固定连接数的连接池和一个执行SQL任务的队列,当执行SQL的任务进入队列后,从连接池中选择一个空闲的连接执行SQL任务,并把SQL执行结果通过回调函数返回给逻辑处理的Server模块。大致步骤如下: 预先分配好线程池,每个线程创建一个连接到数据库的连接数据库模块创建一个任务队原创 2015-08-16 09:39:26 · 1857 阅读 · 0 评论 -
typedef函数指针用法
1.简单的函数指针的应用形式1:返回类型(*函数名)(参数表) [cpp] view plaincopychar (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2);转载 2015-08-28 17:36:32 · 346 阅读 · 0 评论 -
插件管理代码分析
原创 2015-08-28 17:28:33 · 476 阅读 · 0 评论 -
C++插件管理器
插件管理器实现原理:1. 加载dll插件管理器加载dll -----------》 dll包含有若干类 ,每个类实现一个统一结构Create()函数,该函数返回该类的一个实例 -----》每个dll有一个统一的入口初始化函数Init(),该函数将该dll中的类名与类中的Create()函数地址组合成映射表Map注册到插件管理器中2. 实现公有接原创 2015-08-28 17:16:11 · 1267 阅读 · 0 评论 -
c++ 11新特性
转自:http://www.cnblogs.com/pzhfei/archive/2013/03/02/CPP_new_feature.html#section_3.1C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百科不是知道是台湾还是转载 2015-07-20 11:02:11 · 374 阅读 · 0 评论 -
static_cast, dynamic_cast, const_cast探讨
转自:http://www.cnblogs.com/chio/archive/2007/07/18/822389.html首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中,转载 2015-03-10 10:57:42 · 315 阅读 · 0 评论 -
C++ 多态性
转自 :http://blog.youkuaiyun.com/hackbuteer1/article/details/7475622C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的转载 2015-03-08 10:19:56 · 383 阅读 · 0 评论 -
头文件定义全局变量
如果在头文件中定义一个静态变量,因为静态变量只属于某个文件,如果多个源文件中包含了这个头文件,实际上相当于定义了多个静态成员变量(每个源文件一个)如果在头文件定义了一个全局变量,如果被多个源文件包含的话,应该这样使用:在头文件中:extern int var;// 不要初始化然后各个源文件包含这个头文件,在某一个源文件进行初始化。原创 2015-03-15 11:33:12 · 705 阅读 · 0 评论 -
const 用法总结
转自 :http://www.cnblogs.com/lichkingct/archive/2009/04/21/1440848.html1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为T转载 2015-03-15 10:46:56 · 349 阅读 · 0 评论 -
C++ 11 中的右值引用
右值引用的功能首先,我并不介绍什么是右值引用,而是以一个例子里来介绍一下右值引用的功能: #include #include using namespace std; class obj { public : obj() { cout ">> create obj " obj(co转载 2016-07-14 13:26:49 · 535 阅读 · 0 评论