c++
文章平均质量分 86
davidsu33
这个作者很懒,什么都没留下…
展开
-
不要在构造函数和析构函数中调用虚函数
提到构造函数和析构函数,想必大家肯定是非常了解,但是能否在构造函数或是析构函数中调用虚函数呢?答案是千万不要这么做,这么做不会得到大家想要的结果。首先提一下构造函数,构造函数的顺序是从基类开始构造->子类,如果在基类中调用虚函数,由于构造函数基类中仅存在自身(或其父类,如果存在),不会根据虚函数表的规则去调用。看如下例子class Base {public: Base(原创 2018-01-12 11:28:32 · 1793 阅读 · 0 评论 -
手写格式化类DFormat,用到boost.regex boost.regex_replace boost.bind等
// format.cpp : 定义控制台应用程序的入口点。//made by davidsu33//boost.format的用法。//2014-6-10 9:56#include "stdafx.h"#include #include #include #include #include #include //#include #原创 2014-06-10 14:55:22 · 785 阅读 · 0 评论 -
qt中修改系统或用户环境变量
qt中只能通过原创 2014-06-09 14:32:22 · 3598 阅读 · 0 评论 -
模板基链的实现,实现c#的接口,单继承模式
// baselinker.cpp : 定义控制台应用程序的入口点。//实现一个基类链操作,实现类似C#中接口的功能//made by davidsu33//2014-6-8 19:00#include "stdafx.h"#include #include //1.实现对某一个类的片段操作//将操作划分到几个类中,可以将某些接口作为一定要实现的接口去操作原创 2014-06-08 19:25:46 · 930 阅读 · 0 评论 -
标准库utility中rel_pos替换操作符的用法
// operators.cpp : 定义控制台应用程序的入口点。//made by davidsu33//2014-6-8 18:40#include "stdafx.h"#include #include using namespace std;//utility中提供的rel_ops,操作符之间的转换//通过实现 ! >= stru原创 2014-06-08 18:39:27 · 1021 阅读 · 0 评论 -
多维容器按列组合元素
// alg2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//昨天碰到一个文件,有这么一个std::vector> //现在需要将每一列的数据进行组合//按照普通写法,每个vector的长度是知道的直接//for(int lvl1;.....)// for(int lvl2;...)// for(int lvl原创 2014-06-25 09:42:21 · 1281 阅读 · 0 评论 -
QT透明
通过如下代码可实现透明效果setWindowFlags(Qt::FramelessWindowHint);setAttribute(Qt::WA_TranslucentBackground);原创 2014-05-22 23:37:02 · 642 阅读 · 0 评论 -
模板参数tag的用法
//通过结构体/类的类型来作为模板参数的tag,//用来区分tag之间的区别。//made by davidsu33//例如对于某个全局的静态变量,你如果希望有//很多份,但是其实现又是一样的,你可以考虑//以模板的形式,通过类tag来区分//而且还可以根据实际需要来特化模板#include "stdafx.h"#include #include using nam原创 2014-05-14 11:05:53 · 1387 阅读 · 0 评论 -
遵照std::allocator实现自定制的内存分配器
下面是标准库STL中allocator的实现templateclass allocator: public _Allocator_base{ // generic allocator for objects of class _Typublic:typedef allocator other;typedef _Allocator_base _Mybase;t原创 2014-05-13 22:50:15 · 3112 阅读 · 0 评论 -
将宏定义写得更像函数
今天看到这样一个宏定义#define rb_set_black(r) do { (r)->color = BLACK; } while (0)原创 2014-05-13 08:25:22 · 585 阅读 · 0 评论 -
qtclucene全文检索
用QT也已经三四年了,今天从QT的tools中看到qtclucene,原来这个就是从clucene移植过来的一个全文检索工具,用在QTHelp中。下面是clucene的说明:CLucene是Lucene的一个C++移植,Lucene是一个基于java的高性能的全文搜索引擎。CLucene因为使用C++编写,所以理论上要比lucene快。[1]Lucene不是一个完整的全文索原创 2014-05-19 14:33:57 · 2263 阅读 · 1 评论 -
boost的scope_exit的用法
boost的scope_exit中1.4.9的版本和1.5.5的版本差异很大,以前boost1.4.9的scope_exit不支持原创 2014-04-28 09:30:13 · 3128 阅读 · 0 评论 -
解决微软面试题
// grammer.cpp : 定义控制台应用程序的入口点。//made by davidsu33//第12题(语法)微软面试题//题目:求1+2+…+n,//要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。#include "stdafx.h"#include #include #include usin原创 2014-05-13 10:25:20 · 715 阅读 · 0 评论 -
enable_shared_from_this用法
shared_from_this()是enable_shared_from_this的成员 函数,返回shared_ptr。首先需要注意的是,这个函数仅在shared_ptr的构造函数被调用之后才能使 用。原因是enable_shared_from_this::weak_ptr并不在构造函数中设置,而是在shared_ptr的 构造函数中设置。 如下代码是错误的:cla转载 2014-05-12 21:49:17 · 1698 阅读 · 0 评论 -
boost库完全开发指南
第1章 Boost法度库泛论应用Boost,将大大加强C++的功能和发挥解析力 第2章 时候与日期timer供给毫秒级的计时精度,内部是经由过程std::clock取时候的progress_timer主动打印某生命周期的履行时候原则上法度库的代码是不该该被用户批改的progress_display可以在把握台上显示法度的履行进度date_time库能很好的默示日期时候概念,并能和C的时候布局tm进转载 2014-04-28 08:41:42 · 2014 阅读 · 0 评论 -
用vs2012编译doxygen-1.8.7
1.下载bison,地址见上篇文件,我用的是2.4.1-setup.exe2.下载flex,地址见上篇文件,我用的是flex-2.5.4a-1.exe3.下载python,我用的是2.7版本4.将前面三个软件安装后,将其安装后目录下的bin都添加到系统给的path路径中,将python的根目录增加到系统的path目录5.使用vs2012打开doxgen的源代码,目录下有个winbu原创 2014-05-18 11:23:54 · 1621 阅读 · 0 评论 -
c/c++内置宏定义说明
文中__FILE__与示例1可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#define STRING(x) #x之后,下面二条语句就等价。 char *pChar = "hello";转载 2014-07-04 17:25:50 · 875 阅读 · 0 评论 -
设计模式中组合(Compose)和聚合(Aggregate)的关系
(Composite/Aggregate ReusePrinciple ,CARP)要尽量使用对象组合,而不是继承关系达到软件复用的目的定义:经常又叫做合成复用原则(Composite ReusePrinciple或CRP),尽量使用对象组合,而不是继承来达到复用的目的。就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新对象通过向这些对象的委派达到复用已有转载 2014-07-24 17:34:04 · 6025 阅读 · 1 评论 -
数据结构-Sort
Sort好好复习了一下,不容易啊...#include #include #include #include #include #include #include #include #include #include #include #include #include /*made by davidsu33 2017-6-14*/#define MAX原创 2017-06-14 20:11:42 · 567 阅读 · 0 评论 -
C++中typename和class的区别
在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为: template...... 在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typ转载 2016-11-25 11:05:41 · 240 阅读 · 0 评论 -
温故而知新【快速排序】
#if !defined(_SORT_INCLUDED_H)#define _SORT_INCLUDED_H#include /*分别使用递归和循环来实现快速排序,虽然已经写了4年多代码了但是发现一次性写的完整无误还真是...呵呵author:davidsu33datetime:2015-3-1*//*快速排序,使用递归*/templatevoid swap_val原创 2015-03-01 16:25:14 · 636 阅读 · 0 评论 -
C++的__内置宏定义
ANSIC标准定义了以下6种可供C语言使用的预定义宏: __LINE__ 在源代码中插入当前源代码行号 __FILE__ 在源代码中插入当前源代码文件名 __DATE__ 在源代码中插入当前编译日原创 2014-12-18 10:10:37 · 1080 阅读 · 0 评论 -
解答-单体类为什么还是产生了多个类??
今天写代码的时候在一个DLL模块编写了一个模板的单体类,但是发现在该DLL的执行代码和调用原创 2014-10-14 16:43:05 · 763 阅读 · 0 评论 -
directUI
0. Windows Live, QQ 和 百度 hi 的界面其实并不神秘。大家都想学习而不得其门而入。我也经历了跟大家同样的历程。现在发现了一些门道,跟大家分享一下。1. 所谓 directUI 其实大部分不是真的用DirectX技术做的。其实他也是用的GDI和GDI+的函数绘制出来的。WPF是用的DirectX,这个很强。2. 那些看起来非常漂亮的界面效果在《Windows 图形编程》这本书里转载 2014-09-30 10:53:20 · 812 阅读 · 0 评论 -
VC加花指令
void flower_code(){ __asm { jz label; jnz label; //相当于汇编中的db __emit 0e8h; label: mov ax, 8; xor ax, 7; }}汇编显示如下:实际的汇编代码:原创 2014-10-27 17:17:10 · 4514 阅读 · 0 评论 -
对C++ Local的经典分析
“这个问题比你想象中复杂”(我也学下BS的风格,虽然这句话是我自己临时想说的。^^)从字符到整数char是一种整数类型,这句话的含义是,char所能表示的字符在C/C++中都是整数类型。好,接下来,很多文章就会举出一个典型例子,比如,’a' 的数值就是0×61。这种说法对吗?如果你细心的读过K&R和BS对于C和C++描述的原著,你就会马上反驳道,0×61只是’a'的ASCII 值,并没转载 2014-09-30 15:39:56 · 2218 阅读 · 1 评论 -
GUI库
UI库例如金山开源的BKWin,迅雷开源的bolt,还有sourceforge上的一些开源UI库转载 2014-09-30 10:43:20 · 605 阅读 · 0 评论 -
C语言的谜题
本篇文章《C语言的谜题》展示了14个C语言的迷题以及答案,代码应该是足够清楚的,而且我也相信有相当的一些例子可能是我们日常工作可能会见得到的。通过这些迷题,希望你能更了解C语言。如果你不看答案,不知道是否有把握回答各个谜题?让我们来试试。1、下面的程序并不见得会输出 hello-std-out,你知道为什么吗?#include #include int main()转载 2014-09-27 19:26:39 · 549 阅读 · 0 评论 -
C++成员指针和成员函数的操作
对于C++类成员指针和成员函数,很原创 2014-09-27 17:07:23 · 677 阅读 · 0 评论 -
C++通过JVM调用jar包
#include "jni.h"#include "windows.h"#include "stdafx.h"typedef jint (WINAPI *_CreateJavaVM)(JavaVM **, void **, void *);int _tmain(int argc, _TCHAR* argv[]){int res;JavaVMInitArgs vm_arg转载 2014-09-03 15:07:43 · 4363 阅读 · 1 评论 -
怎样在C++中写UTF-8格式的内容
Let’s say you need to write an XML file with this content:How do we write that in C++?At a first glance, you could be tempted to write it like this:#include fstream >int main(){ st转载 2014-06-21 15:06:49 · 1461 阅读 · 0 评论 -
c++爬虫引擎
目前网络上有不少开源的网络爬虫可供我们使用,爬虫里面做的最好的肯定是google ,不过google公布的蜘蛛是很早的一个版本,下面是几种开源的网络爬虫的简单对比表:下面我们再对Nutch、Larbin、Heritrix这三个爬虫进行更细致的比较:Nutch开发语言:Javahttp://lucene.apache.org/nutch/简介:转载 2014-07-11 08:19:02 · 1325 阅读 · 0 评论 -
vc运行时的配置,以及作用
VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)、单线程(/ML)、单线程调试(/MLd)。Reusable LibrarySwitchLibraryMacro(s) DefinedSingle Threaded转载 2014-06-17 15:58:28 · 758 阅读 · 0 评论 -
QT静态库和动态库的导出
由于静态库是不需要导出的,所以在写QT的前置声明的时候需要说明#if defined(QT_SHARED)#ifdef COMMONLIB#define COMMONLIB_EXPORT Q_DECL_EXPORT#else#define COMMONLIB_EXPORT Q_DECL_IMPORT#endif#else#ifdef COMMONLIB#defi原创 2014-04-28 08:16:43 · 2571 阅读 · 0 评论 -
zlib编译
vs2008编译zlib库32位及64位 这里以1.2.5为例,当前最新的版本1.2.7,方法应该都是通用的。32位版本 1、下载并解压缩zlib-1.2.5.tar.gz官网http://www.zlib.org(最近打不开),所以我上传了一份在资源,下载地址:http://download.csdn.net/detail/shellching/4689279转载 2014-05-18 12:29:28 · 946 阅读 · 0 评论 -
fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突——我的解决方案
碰到这个问题,我也蒙了,我编译的是个静态库,没有依赖什么别的东西转载 2014-05-06 16:30:18 · 6164 阅读 · 1 评论 -
模板的模板类
Loki里面有个基于TypeList的GenScatterHierarchy的模板类用来生成杂乱的继承关系,tuple的核心就是这么实现的。看了这个之后,发现Loki真的是太强大了,所以直接写了一个模板的模板类的demo,用以学习。见如下demo代码#include #include using namespace std;template class >struct GenTemp原创 2014-04-04 16:33:05 · 1051 阅读 · 0 评论 -
编译兼容win7/win8的程序
在Vista/Win7/Win8下,有一个系统兼容性助手功能,使得程序在安装完成后或运行时,总是弹出应用程序兼容性助手相关的提示,很是烦人,事实上我们的程序兼容性是没有问题的,只不过是在程序中没有指定应用程序兼容的操作系统,所以导致了这些问题。 VS2008和VS2010可以生成一个与exe应用程序相关联的.manifest文件,微软已经为该文件中添加了一个新的 字段, 这个字段转载 2014-05-06 21:35:59 · 1259 阅读 · 0 评论 -
程序自删除
之前在XP上通过MoveFile解决过该问题,但是在win7上发现这样不是很好使,所以想了一个很恶心的办法,原创 2014-05-05 17:37:37 · 699 阅读 · 0 评论 -
调用参数的传递
应用程序传递参数的时候,有的时候需要传路径,原创 2014-05-05 17:34:10 · 547 阅读 · 0 评论