C++
文章平均质量分 86
ilvu999
这个作者很懒,什么都没留下…
展开
-
C++中如何在main()函数之前执行操作?
多玩YY语音的面试题:C++中如何在main()函数之前执行操作? 第一反应main()函数是所有函数执行的开始。但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的theApp对象,其执行顺序就在main函数之前。道理相通,顺理推下,能够想到:如果在main函数之前声明一个类的全局的对象。那么其执行顺序,根据全局对象转载 2013-04-21 23:16:36 · 1660 阅读 · 0 评论 -
一个编译器(前端)的实现
一个编译器(前端)的实现前一阵做了个编译器(仅词法分析、语法分析、部分语义分析,所以说是前端),拿来分享一下,如有错误,欢迎批评指教!整个代码库具有如下功能:提供编译器所需基础数据结构、计算流程框架类,可供继承使用; 提供基础数据结构的可视化控件; 提供类似YACC的词法分析器、语法分析器自动生成功能; 提供Winform程序,集成和扩展上述功能,方便研究和应用。本转载 2012-10-24 17:25:16 · 934 阅读 · 0 评论 -
std::invalid_argument应用
std::invalid_argument应用首先说明invalid_argument是一个类(class invalid_argument;),它的继承关系如下exception-------->logic_error--------->invalid_argument invalid_argument原型是1 class invalid_argument:publi转载 2012-10-24 17:24:01 · 1576 阅读 · 0 评论 -
[C++]一份Linq to object的C++实现
[C++]一份Linq to object的C++实现几个月的构想+0.5小时的设计+4小时的linq.h编码+3小时的测试编码。大量使用C++11的特性,在GCC 4.7.2下编译通过。 关于实现相关的描述就不说了,我表达能力差,恐怕讲清楚还需要好几个小时。具体使用参见测试码。上代码:(1) linq.hView Code(2) 测试代码main.cp转载 2012-10-22 16:28:40 · 488 阅读 · 0 评论 -
C++学了这么多年,你仍不知道的事!!!
C++学了这么多年,你仍不知道的事!!!C++点滴感悟 C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类的实现放在cpp文件中。它们为什么能够关联到一起呢?你知道什么东西可以放在.h文件中,什么不能。什么东西又可以放在cpp文件中。如果你忘记了或是压根就不明白,那么读过此文你会清晰无比!! 首先谈下声明与定义的区别。转载 2012-10-31 18:38:30 · 477 阅读 · 0 评论 -
梦断代码--一个程序员的自白 笔记
不让转载,只好摘录,有空再整理笔记原文: 梦断代码--一个程序员的自白 (一)梦断代码--一个程序员的自白 (二)梦断代码--一个程序员的自白 (三)梦断代码--一个程序员的自白 (四)梦断代码--一个程序员的自白 (五)梦断代码--一个程序员的自白(七)梦断代码--一个程序员的自白(八)梦断代码--一个程序员的自白(九 完) 而对转载 2012-10-17 19:07:42 · 1593 阅读 · 0 评论 -
Qt中的C++技术 张波
Qt中的C++技术 张波本书剖析了开源开发框架Qt中的C++技术,给读者提供一个优秀的案例,以学习C++语言以及面向对象设计技术。该书讨论了以下内容:类模板特化技术;分析比较了C++标准库、Qt对字符串、数据输入/输出的处理思路;隐式共享与d-pointer技术;函子及其在QTL(Qt Template Library)中的应用,QTL是如何使用模板特化技术优化QList性能转载 2012-10-20 16:17:10 · 5112 阅读 · 0 评论 -
C++案例的初步选择
1.1 案例的初步选择《Qt中的C++技术》第1章案例的选择与评估,本章讲述为什么会从众多的开源C++项目中选择Qt。本节为大家介绍案例的初步选择。第1章 案例的选择与评估C++语言的学习者往往希望有一个源代码公开、质量上乘的C++项目作为学习的范本来临摹。这种案例最理想的来源是知名软件企业使用C++开发的产品,比如微软公司开发的Windows操作系统、Office办公转载 2012-10-20 20:36:58 · 874 阅读 · 0 评论 -
带注册功能的单件(Singleton)模式的C++实现
带注册功能的单件(Singleton)模式的C++实现#include #include #include using namespace std;class Singleton{public: static void Register(string pName, Singleton* pItem); static Sin转载 2012-10-20 16:06:11 · 483 阅读 · 0 评论 -
stl之bind1st,bind2nd解读(转)
stl之bind1st,bind2nd解读(转)1、首先看一个容器的操作:void f(std::vector &vect){ std::vector::iterator firstOne; for (firstOne = vect.begin(); firstOne != vect.end(); ++firstOne) {转载 2012-10-22 10:57:26 · 447 阅读 · 0 评论 -
C++编程的精品文章整理
12007-10-17, 10:22:19【原创】C++编程的精品文章整理本人现在在学习C++编程,经过一段时间也积累收藏了很多自己认为不错的文章,其中也有自己写的一些,现整理出来方便大家使用!并希望大家指正和建议和交流!希望对大家有帮助!咱们一起努力进步,因为我还是编程的一般水平! 首先是C/C++忠告(转载)转载 2012-10-21 22:14:40 · 3153 阅读 · 1 评论 -
指针与数组
int main(){char a[5]={'A','B','C','D'};char (*p3)[5] = &a;char (*p4)[5] = a;return 0;}p3这个定义的“=”号两边的数据类型完全一致,而p4这个定义的“= ”号两边的数据类型就不一致了。左边的类型是指向整个数组的指针,右边的数据类型是指向单个字符的指针。p3+1的值会转载 2012-10-20 18:16:07 · 356 阅读 · 0 评论 -
陈硕的cpp博客
置顶随笔[置顶]新书预告:《Linux C++ 多线程服务端编程》(暂定名)看完了 W. Richard Stevens 的传世经典《UNIX 网络编程》, 能照着例子用 Sockets API 编写 echo 服务, 却仍然对稍微复杂一点的网络编程任务感到无从下手? 书中示例代码把业务逻辑和 Sockets 调用混在一起,似乎不利于将来扩展?程序在本机测试正常,放到网络运行上转载 2012-10-21 12:25:44 · 6789 阅读 · 0 评论 -
RCF—用于C++的进程间通讯
RCF—用于C++的进程间通讯 导言RCF(Remote Call Framework,远程调用框架)是一个C++的框架。这个框架用来为实现C++程序进程间调用提供一个简单和一致(consistent)的方法。这个框架基于强类型的C/S接口概念,类似于用户所熟悉的CORBA,DCOM这样的中间件。然而,因为RCF只应用于C++转载 2012-10-20 22:51:00 · 3176 阅读 · 0 评论 -
C语言开发平台editPlus+MinGW(gcc)的建立
C语言开发平台editPlus+MinGW(gcc)的建立C语言学习平台editPlus+MinGW(gcc)的建立首先说明,这东西是给新手看的,高手就别来浪费时间了.因为工作中有可能要接触到C语言,所以赶紧弄了个C语言的平台复习复习,本来打算用eclipse+ctd+minGW,可是弄了个最新版本的eclise后,没有找到相匹配的其它东西,所以只好想办法弄一个其它开发工具了.转载 2012-10-20 15:19:46 · 1055 阅读 · 0 评论 -
EditPlus搭建java和gcc编译环境
EditPlus搭建java和gcc编译环境EditPlus搭建java和gcc编译环境这个学期由于自学JAVA的原因而爱上了EditPlus编辑器。先给个下载连接吧:http://www.xiazaiba.com/html/184.html(1)搭建JAVA环境首先,当然是要先安装JDK,这里就不赘述了。如果没有安装过JDK的话转载 2012-10-20 15:18:13 · 597 阅读 · 0 评论 -
Ch/CINT — C/C++语言脚本解释器
1.CHCh是一个跨平台的C/C++脚本解释器,它支持ISO的C语言标准(C90/C99)和C++类库,附带了8000多个函数库并支持众多的工业标准,支持POSIX, socket/Winsock, X11/Motif, OpenGL, ODBC, C LAPACK, GTK+, Win32, XML, 和CGI等等。Ch具有MATLAB的高级数值计算和绘图的功能,且具有良好的交互性,在C转载 2012-10-20 14:55:53 · 1069 阅读 · 0 评论 -
理解ATL中的一些汇编代码
理解ATL中的一些汇编代码我们知道ATL(活动模板库)是一套很小巧高效的COM开发库,它本身的核心文件其实没几个,COM相关的(主要是atlbase.h, atlcom.h),另外还有一个窗口相关的(atlwin.h), 所以拿来学习应该是很方便的。但是因为ATL的代码充满了模板和宏,内部还夹杂着汇编,所以如果没有比较丰富的C++模板和系统底层的知识,一般人会看得一头雾水。下面我们转载 2012-10-24 17:26:44 · 443 阅读 · 0 评论 -
非IE内核浏览器支持activex插件
之前在一个B/S项目中遇到一个需求,就是客户需要在页面上对报表的布局以及显示内容,进行自定义。最后决定使用activex技术来实现。众所周知,activex是微软搞得,因此只有ie内核的浏览器才能支持。像firefox(火狐)、Chrome、Apple Safari等非ie内核浏览器都不支持activex控件,这样就大大加大了系统使用的局限性。因此考虑是不是可以让非ie内核浏览器也能支持a转载 2012-10-27 08:33:27 · 3702 阅读 · 3 评论 -
多行文本绘制
CPaintDC dc(this); // 用于绘制的设备上下文 CString str= "abcde\r111 "; dc.DrawText(str,CRect(10,10,100,100),DT_CENTER); WIN32代码: const char *p = "abcde\r111 "; HDC hdc = ::Ge转载 2012-10-28 12:41:14 · 583 阅读 · 0 评论 -
不要STUPID,坚持GRASP和SOLID
不要STUPID,坚持GRASP和SOLID听过SOLID编码吗?有人可能会说:这是描述设计原则的一个专业术语,由我们可爱的代码整洁之道传教者鲍勃(罗伯特C. 马丁)大叔提出,是一组用于指导我们如何写出“好代码”的原则。在编程界充满了这样由单词首字母组成的缩略词。其它类似的例子还有DRY(Don’t Repeat Yourself! 不要重复你自己!)和KISS(Kee转载 2013-04-21 23:30:29 · 933 阅读 · 0 评论 -
如何判断一个C++对象是否在堆栈上
如何判断一个C++对象是否在堆栈上昨天有人在QQ群里问到如何判断一个C++对象是否在堆栈上, 我在网上搜索了下, 搜到这个么一个CSDN的帖子http://topic.csdn.net/t/20060124/10/4532966.html ,可惜它也没有给出一个合适的答案。要解答这个问题,其实就是要知道的堆栈的起始地址, 而我们知道堆栈其实就是一段有相同属性的内存页面,而Windows转载 2013-01-28 00:31:30 · 1263 阅读 · 0 评论 -
常见体系结构介绍
常见体系结构介绍数据流系统概念:以算法和数据结构为中心, 像管道和过滤器般处理数据,每个组件都有相对独立的数据处理功能,数据依次经过各个组件,最后形成完整的数据处理系统。优点:各个组件都是独立的, 可以放方便的组合、重用和扩展,流水线式的执行,支持大规模并行处理。缺点:流水线式的处理, 所以一般要求数据有比较统一的输入和输出格式;各个组件都是独立的, 因此的很难提取共性;批处理转载 2013-01-28 00:28:50 · 992 阅读 · 0 评论 -
一个优秀windows C++程序员的知识体系
一个优秀windows C++程序员的知识体系思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图:除了上面知识,程序员还要不断学习, 保持对新知识的热情。PS: 和同事讨论, 其他职业(比如司机或是厨师),他们只要学完基本的技能后就可以一劳永逸了,学的知识也比我们少的多,也不用担心新技术的更替。所以感觉程序员真的挺累,转载 2013-01-28 00:27:27 · 873 阅读 · 0 评论 -
如何写一个高质量的函数
如何写一个高质量的函数 错误处理在写一个可靠的系统程序里是一个非常关键的问题。当你在写一个函数时,请想到这个函数可能会被同一个应用程序进行无数次的调用。那么你想让这个函数的行为是什么样的呢?通常,当有错误发生时,函数不能自己肆意退出,而应该告诉调用者出现了什么样的错误,这样做就使调用者有机会去修复错误或者是以一种很完善的方式退出程序。 函数也不能以返回值之外的形式对进程状态转载 2012-11-26 06:08:42 · 691 阅读 · 0 评论 -
C++类模板的三种特化
C++类模板的三种特化 (2012-06-30 16:59)标签: 的 三 color style title 分类:C++原文:By SmartPtr(http://www.cppblog.com/SmartPtr/)说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板转载 2012-11-25 17:59:26 · 882 阅读 · 0 评论 -
“条件递进式编程”技巧两例
“条件递进式编程”技巧两例什么是“条件递进式编程”?呵呵,这是我自己起的名字。所谓条件递进式编程,就是指需要一系列相关函数组合执行的情况下,后续函数执行的必要性由前面所有函数执行是否成功来决定。比如说,有一系列函数如下DoSomething1、DoSomething2、DoSomething3......DoSomethingN;DoSomething2函数执行的前提是DoSome转载 2012-11-25 09:19:28 · 495 阅读 · 0 评论 -
[C/C++再探讨STL里的function和bind的实现
前一段时间仔细研究了下STL里面的function和bind,并写了两篇博文:std::tr1::function源码剖析(一)std::tr1::function源码剖析(二)虽然当时仔细的研究了MS的STL库里function和bind的代码,但是还有不甚明白的地方。刚好昨天有时间,就想彻底的弄明白function到底是怎么回事。没想到这一下子还真的想通了!function类在转载 2012-10-22 10:44:45 · 669 阅读 · 0 评论 -
C语言实现《大话设计模式》中的观察者模式中的委托例程
C语言实现《大话设计模式》中的观察者模式中的委托例程 1. #ifndef __ENTRUSTOBSERVER_H__ 2. #define __ENTRUSTOBSERVER_H__ 3. #include "rtthread.h" 4. #include "finsh.h" 5. //根据类名和类里面项的名,获得类的入口句柄 6. #define ClassEntr转载 2012-10-18 15:39:05 · 943 阅读 · 0 评论 -
C++实现委托和消息反馈模板
我写过不少C++程序(当然比起高手还 是差远了),写过库也写过客户程序。一般库都会提供一些好用的类供客户程序使用,不少库还可以让客户程序响应库内的某些事件。比如MFC/ATL/VCL 提供消息响应,很多ActiveX提供自定义消息响应,甚至是系统底层的中断调用都可以列入这个范畴。然而,正是以上这些“反向”的调用让我觉得很烦恼。继承+多态乍一看是理所当然的选择,库中的类把响应处理函数设置为虚转载 2012-11-21 14:43:19 · 619 阅读 · 0 评论 -
C++ 虚拟函数vs 回调函数 像有虚拟方法表一样有一个虚拟变量表就可以实现类级回调函数了
虚拟函数使得对象用同一个名字,调用不同函数.这种多态实现了某种概念的抽象.用回调也可以达到类似的效果,某种意义上,用回调更灵活.由于C++的类回调函数的强类型导致用起来不够灵活方便,这里的回调函数可以用Delegate代替.其实用回调是典型的使用聚合而不使用继承的思路.最典型的例子就是Thread类,通常的做法是写一个非虚拟的Run,调用虚拟的Excute.原创 2012-11-25 04:26:42 · 1421 阅读 · 0 评论 -
面向对象之抽象方法
面向对象之抽象方法- Richard 时间@脚印- 博客园作者:未知 时间:2010-6-26 22:21:18 在面向对象过程中,知道对象是什么但是总感觉缺乏一种方法来实现面向对象。要实现面向对象就是要用抽象的方法来归纳对象类型,对象的属性和行为以及对象协作关系。抽象是具体到一般化的过程。目的是为了把概念和实现的分离以达到应对软件需求的变化的影响。抽象方法是面转载 2012-11-25 18:58:59 · 686 阅读 · 0 评论 -
抽象基类与接口,共性与个性的选择!
抽象基类与接口,共性与个性的选择!C#中的抽象基类(Abstract Class)和接口(Interface)都实现了面向对象中的继承机制,它们通过定义抽象方法匀实现了对继承类的功能上的约束,那么在如何在恰当的场景选择恰当的继承机制是我们在设计中经常会遇到的问题,我们先来对比两者之间的区别与联系。相同点 都可以被继承。 本身都不能被实例化 不同点 抽象类是一个不转载 2012-11-25 18:57:56 · 518 阅读 · 0 评论 -
C++中RTTI的观念和使用 (2012-06-30 15:22)
C++中RTTI的观念和使用 (2012-06-30 15:22)标签: C++ RTTI 分类:C++下面这篇文章虽然有点老,但对C++的RTTI基本原理讲的比较透彻。该文章摘自UMLCHINA网站,是台湾一个群体写的,我根据大家比较熟悉的方式,修改了一些名词的说法,如衍生(派生)等,让大家可以方便的阅读。C++的 RTTI 观念和用途物泽C++应用小组转载 2012-11-25 18:01:00 · 572 阅读 · 0 评论 -
OO抽象
oo 抽象 处理的对象 步骤 方法 结果创建 ,结构 ,行为.结构:分层, 嵌套结构.:装饰. 链式:责任链.核心层:便利性的封装层.复杂的东西.共性,个性.关注点分离. 输入输出与逻辑处理代码分离功能性需求,性能性需求.一次关注一个.为何不要过早不成熟的优化?原创 2012-11-25 16:50:36 · 556 阅读 · 0 评论 -
面向对象的开发方法(Object Oriented,OO)
面向对象的开发方法(Object Oriented,OO)面向对象的开发方法(Object Oriented,OO)认为是好文章吧,拿来与大家分享一下(转载) 现在每个程序员都会说:OO思想,OO开发,呵呵,是真的理解了嘛?看看下面的文章就知道啦。。。面向对象的开发方法(Object Oriented,OO) 从事软件开发的工程师们常常有这样 的体会:在软件开发过程中,转载 2012-11-25 18:52:41 · 1742 阅读 · 0 评论 -
TinyC(TCC) 获得 LibTcc.dll 的简单方法
长期从 CSDN 里 down 东西,获得支持, 可未曾为其添砖加瓦, 今天获知一个技巧性的东西,和大家共享。 ^_^最近寻找可放在自己程序里的 C/C++ 脚本(所谓嵌入式脚本),CInt、Tcc 等等都试了个遍,最后看中这个两个。特希望 Cint可用(虽然是日本人写的,丰田本田松下等等东东也为我们所用嘛,所以就不介意用人家的源代码啦),毕竟这东东是 C++ 的。 可不管怎么编译转载 2012-10-20 14:47:41 · 1793 阅读 · 0 评论 -
TinyC的VC++版
TinyC的VC++版考虑换成新的脚本,还好还没开始写,感谢:http://hi.baidu.com/seagatecm/blog/item/9e3425cb8378ef16bf09e622.html 转帖啊,又是一年了,一年更新一次。最近在网上看到有文章介绍Tiny C compiler。感觉这个用来做游戏脚本应该不错,运行时编译出来的是机器码,应该比lua什么的更一些快吧。转载 2012-10-20 14:42:56 · 1119 阅读 · 0 评论 -
QT编译后release下无法执行,找不到dll输入点
无法定位程序输入点_Z5qFreePv于动态链接库QtCore4.dll上QT编译后release下无法执行,找不到dll输入点应用程序在debug下编译后可以正常执行,可是编译到release下 打开 .exe文件时,就出错:无法定位程序输入点_Z5qFreePv于动态链接库QtCore4.dll上配置为:windowsXP + Eclipse转载 2012-10-20 00:30:25 · 2463 阅读 · 0 评论 -
c++ 成员函数 普通函数指针转换
#c++ 成员函数 普通函数指针转换QMAKE_CXXFLAGS += -Wno-pmf-conversions typedef void (*func_type)(void * obj, int num);class test_t{public: void test_func(int num) {原创 2012-10-19 09:22:40 · 2188 阅读 · 1 评论