随笔分类 - C++
摘要:从VC2003到VC2005,一直有一个很奇怪的问题。 如下的代码:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--shorts1=0;shorts2=2;s1+=s2; 在这两个编译器的 /w4 四级警告打开的时候,就冒出以下的警告来:Code hi...
阅读全文
摘要:没想到汉语编程又有人开始网上对骂了。一方指另一方骗人,一方吹自已伟大。 今天群里头有人又把它翻出来了,刚好无聊,也就发明了一个汉语编程语言,集成到visual studio 2005的IDE中,名字就叫汉语编程++,欢迎同样无聊的朋友试用。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeH...
阅读全文
摘要:C语言确实很优雅,整个语言的设计简洁一致。而在C++中,有一个让人诟病的问题就是变量初始化的不一致性。C语言中的初始化,都是用花括号进行,简单美观:intarray[]={1,2,3,4,5};structPointpoint={2,3};structPointarrPoint[]={{2,3},{4,5},{6,7}};C++自然也兼容了C语言的初始化机制。然而,C++的Class乃至STL都不...
阅读全文
摘要:一直在使用C/C++,对于循环语句while、do while、for,对于for情有独钟,因为其简洁、清晰、灵活。访问数组类型的变量,只有for写出来的语句是最易于阅读的,如:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--intarr[N]={/*...
阅读全文
摘要:要说C++0x中对泛型编辑最大的改变,当属Concept了。Concept这个东西,其实并不是刚刚提出来的。可以说,Concept是STL的基础。STL之于C++的地位不言而寓,而其中最重要的,当属迭代器(Iterator)的概念(Concept)了。这是接触STL后得到的最明显的Concept。有了迭代器,就可以将算法与容易分离开来,这样就奠定了STL的基础。于是一个又一个服务于STL的概念(C...
阅读全文
摘要:又是后知后觉,今天猪猪给我一个地址,让我看看怎么回事,结果我一看,是codeproject的MFC专栏。乍一看,真的晕了,所有的项目都是Ultimate Toolbox的。再一看,哇,Ultimate Toolbox从2007年8月起开源了,免费了。其最后几个产品是5月份发布的。就象被个馅饼砸中了一样,有点晕。想当年,MFC下面最知名的界面库Ultimate ToolBox是个非常让人留口水的。没...
阅读全文
摘要:关于.net方面,已经有许多人在关注了,我就关注一下,VC2008方面的新东西吧。1. 晕倒,实证后,没有增加tr1库(仅增加了tr1::hexfloat).2. 对于模板的>>符号,中间不再需要空格了。3. 增加了for each(T& in A){}语法--这个不算是改进吧,估计是为了与.NET一起工作的产物。这是今天下午初步扫一眼VC2008中Native C++后的感觉...
阅读全文
摘要:这是入门级的随笔,说的是函数对象的定义,使用,以及与函数指针,成员函数指针的关系。
阅读全文
摘要:boost 1.34 终于简化了内嵌python的支持。还支持了python2.5。在中文windows下用vc8编译boost的过程中,虽然仍有代码页字符警告,但是可以正常编译成功,不再象1.33.1那样造成正则表达式库不修改源码不能够编译通过的问题了。下面的例子是从boost文档中来的:Code highlighting produced by Actipro CodeHighlighter ...
阅读全文
摘要:昨天,boost终于发布了1.34版本。该版本新增加了几个内容:1. BOOST_FOREACH 宏 一直对于C++的iterator枚举元素造成的bad smell感到无奈,同时,许多语言都增加了foreach机制。终于,boost增加了这个枚举工具。从此,C++的枚举不再难看。如:Code highlighting produced by Actipro CodeHighlighter (f...
阅读全文
摘要:Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。
所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了。估计看完了,就懂得怎么写Lua程序了。
阅读全文
摘要:C/C++内置的输入、输出,对整数进制只支持三种:8进制、10进制、16进制。记得很久以前,有好几次想用到2进制的输入输出,最终只好自已转换。 昨天kaikai突然发了一个POST: kaikai:看看能不能把这个程序改得更短?#include int main(){ char*a,b[33]; scanf("%*d"); while(scanf("%s",b)==1) ...
阅读全文
摘要: 本文提供了一个方法,让C++源码和C#源码一起编译链接成一个单一的Assembly。
由于C++提供了IJW方法,允许将旧有C++代码也编译成托管代码,因此这篇小文可以用极小的工作量来彻底解决所有C++遗留代码移植到.NET的问题。
这个方法,再加上前次的小文《您也使用托管C++吗?》,就可以把C++遗留代码移植到.NET的所有方法一网打尽了。
阅读全文
摘要: 汇编语言的Hello World,汇编语言没有我想象的那么低级,它已经具备了不少高级语言的特性,代码也变得清晰,层次清楚,易于维护了。
阅读全文
摘要: 转向.NET后,手头上往往仍有旧的模块要重用。也许这些模块是Delphi写的,也许是C/C++写的,或者是其它编程语言……为了能把它们移植到.NET下,或者是在.NET中调用,To be or not to be, that is a question。
在这里,我笔记了几个在工作中遇到的几个场景。不过,这里不包括完全使用C#来重写原来用C++编写的程序这种变态的需求。当你被要求做这种事的时候,请三思而后行……这简直是种非人的折磨。
阅读全文
摘要: C语言的指针相当的灵活方便,但也相当容易出错。许多C语言初学者,甚至C语言老鸟都很容易栽倒在C语言的指针下。但不可否认的是,指针在C语言中的位置极其重要,也许可以偏激一点的来说:没有指针的C程序不是真正的C程序。
然而C++的指针却常常给我一种束手束脚的感觉。C++比C语言有更严格的静态类型,强调类型安全,强调编译时检查。因此,对于C语言中最容易错用的指针,更是不能放过:C++的指针被分成数据指针,数据成员指针,函数指针,成员函数指针,而且不能随便相互转换。而且这些指针的声明格式都不一样.
尽管C++中仍然有万能指针void*,但它却属于被批斗的对象,而且再也不能“万能”了。它不能转换成成员指针。
这样一来,C++的指针就变得很尴尬:我们需要一种指针能够指向同一类型的数据,不管这个数据是普通数据,还是成员数据;我们更需要一种指针能够指向同一类型的函数,不管这个函数是静态函数,还是成员函数。但是没有,至少从现在的C++标准中,还没有看到。
阅读全文
摘要:在C/C++中,数据指针是最直接,也最常用的,因此,理解起来也比较容易。而函数指针,作为运行时动态调用(比如回调函数 CallBack Function)是一种常见的,而且是很好用的手段。
阅读全文
摘要: 指针,在C/C++语言中一直是很受宠的;几乎找不到一个不使用指针的C/C++应用。用于存储数据和程序的地址,这是指针的基本功能。用于指向整型数,用整数指针(int*);指向浮点数用浮点数指针(float*);指向结构,用对应的结构指针(struct xxx *);指向任意地址,用无类型指针(void*)。
本文先探讨C++中用于存储各种类型数据的指针。
阅读全文
摘要:LuaPlus是Lua的C++增强,也就是说,LuaPlus本身就是在Lua的源码上进行增强得来的。用它与C++进行合作,是比较好的一个选择。
阅读全文
摘要:.NET的类可以用 sealed 关键字来说明一个类是最终类,也就是说不能作为基类,不能被继承。Java也有个相同的关键字final完成同样的功能。这个功能有时候很有用。但是C++没有这个关键字。那如何在C++中实现类似的功能呢?
阅读全文