C++
xuyang1205
专注于C 开发,游戏开发
展开
-
C++开源跨平台类库及在VC++.net中应用的配置
在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行而无需改动,只需在对应的平台下 用你喜欢的编译器重新编译即可。 在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行而无需改动,只需在对应的平台下 用你喜欢的编译器重新编译即可。经典的C++库: STLport-------SGI STL库的跨平台可移植版本,在以前有些编译器离符合标准比较远的情况下 那时还是有用转载 2008-04-08 13:14:00 · 1160 阅读 · 0 评论 -
dll 和lib的调用方式
lib文件是在link的时候用 .dll文件是在Run的时候用 lib 是静态链接库 dll 是动态链接库 dll你需要和你的程序一起发布才行 lib编译后就不需要了 lib将在连接时把一些代码拷贝到你的程序代码里,所以叫做静态连接 dll是程序运行时把dll里的代码和资源加再到进程地址空间去,所以叫动态连接 动态链接与静态链接的不同之处在于:动态链接允许可执行模块(.dll 文件或 .exe 文原创 2009-05-26 23:22:00 · 1148 阅读 · 0 评论 -
C++多态技术
C++多态技术作者:荣耀提交者:eastvc 发布日期:2003-12-14 19:38:12原文出处:http://www.royaloo.com/articles/articles_2003/PolymorphismInCpp_content.htm摘要本文描述了C++中的各种多态性。重点阐述了面向对象的动态多态和基于模板的静态多态,并初步探讨了两种技术的结合使用。 关键词多态 继承转载 2009-06-01 18:11:00 · 348 阅读 · 0 评论 -
调试Release版本应用程序
引言如果在您的开发过程中遇到了常见的错误,或许您的Release版本不能正常运行而Debug版本运行无误,那么我推荐您阅读本文:因为并非如您想象的那样,Release版本可以保证您的应用程序可以象Debug版本一样运行。 如果您在开发阶段完成之后或者在开发进行一段时间之内从来没有进行过Release版本测试,然而当您测试的时候却发现问题,那么请看我们的调试规则1: 规则1: 经常性对开发软件进行D转载 2009-06-08 22:14:00 · 413 阅读 · 0 评论 -
声明函数指针数组
#include #include //typedef void (*pf) (); void f1(){};void f2(){};int main(){ void (*pf[2]) ()=...{f1,f2}; system("pause"); return 0;} #include #include typedef void (*pf) (); void f1(转载 2009-06-13 11:05:00 · 500 阅读 · 0 评论 -
彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则
一 :关于指针和堆的内存分配 先来介绍一下指针 : 指针一种类型,理论上来说它包含其他变量的地址,因此有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地址而已。不管什么类型的指针,char * ,int * ,int (*) ,string * ,float * ,都是说明了本指针所指向的地址空间是什么类型转载 2009-06-15 14:23:00 · 455 阅读 · 0 评论 -
《STL之父访谈录》转载
STL之父访谈录 翻译者 : myan出处: http://www.sgi.com/technology/stl 1995年3月,dr.dobbs journal特约记者, 著名技术书籍作家al stevens采访了stl创始人alexander stepanov. 这份访谈纪录是迄今为止对于stl发展历史的最完备介绍, 侯捷先生在他的stl有关文章里推荐大家阅读这篇文章. 因此我转载 2009-06-15 15:09:00 · 570 阅读 · 0 评论 -
C++虚函数表
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的原创 2009-10-17 04:32:00 · 512 阅读 · 1 评论 -
lib和dll文件的区别和联系(1)
1.什么是静态连接库,什么是动态链接库 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不原创 2009-05-26 23:05:00 · 554 阅读 · 0 评论 -
C++代码优化方法总结
优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力。我只是想把一些可以简单的应用到你的C++代码中的优化技术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的性能进行一个大概的估计。这也是本文的目的之所在。 一. 优化之前 在进行优化之前,我们首先应该做的是发现我们代码的瓶颈(bottleneck)在哪里。然而当你做这件事情的时候切转载 2009-08-06 11:52:00 · 553 阅读 · 0 评论 -
[转载]LNK2001 错误详解
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为: unresolved e转载 2008-04-21 18:01:00 · 435 阅读 · 0 评论 -
SVN和VS2005配置感悟
以前写代码的时候总是随便写写,不注意代码的管理。造成了以后代码管理中的出现很多混乱状态。更改代码的时候有时候越改越杂,最后自己就快认不出来了。进入公司以后,突然发现公司用的就是svn进行版本管理。说起svn就有些惭愧。以前看过这方面的文章,也配置过,就是不知道怎么用(代码看少了啊)。到公司不得不用这个每天来比对代码,修改代码,所以用的多了自然就熟悉了。哎呀,看来自己当初真是浮躁了。 在公原创 2009-01-17 14:52:00 · 3946 阅读 · 0 评论 -
预编译头文件的问题--不能找到pch文件的问题
预编译头文件今天在改一个很大的程序,慢慢看,慢慢改。突然发现一个.c文件,里面什么也没有, 就几个头文件,我一看,我靠,这不是把简单的问题搞复杂了吗,随手删掉那个c文件。 结果不能编译了,我靠: fatal error C1083: Cannot open precompiled header file: /Debug/v13_3.pch/: No such file转载 2008-11-26 17:29:00 · 1007 阅读 · 0 评论 -
C++类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class CExample {public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExample() { a=转载 2008-11-28 12:20:00 · 1429 阅读 · 0 评论 -
调试技巧 之调用堆栈
简单介绍调试是程序开发者必备技巧。如果不会调试,自己写的程序一旦出问题,往往无从下手。本人总结使用VC经验,对调试技巧做一个粗浅的介绍。希望对大家有所帮助。今天简单的介绍介绍调用堆栈。调用堆栈在我的专栏的文章VC调试入门提了一下,但是没有详细介绍。首先介绍一下什么叫调用堆栈:假设我们有几个函数,分别是function1,function2,function3,funtion4,且f转载 2009-01-30 16:30:00 · 841 阅读 · 0 评论 -
dynamic_cast介绍
dynamic_cast介绍 dynamic_cast (expression) 这个表达式将 expression 转换为一个 type-id 类型的对象。 Type-id 必须是一个指针、指向一个已经定义类的类型或一个指向 VOID 的指针。 Expression 的类型必须是一个指针,如果 type-id 是一个指针;当 type-id 是一个引用的时候必须是一个左值。 如果 t转载 2008-12-16 21:55:00 · 455 阅读 · 0 评论 -
堆和栈的区别
堆和栈的区别 非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数转载 2009-04-03 17:26:00 · 405 阅读 · 0 评论 -
使用类成员初始化特性简化构造代码
一个新的C++0x特性称为类成员初始化,它允许您在声明数据成员时单一地初始化数据。了解如何使用此功能,以简化您的代码,减少潜在的错误,使你的代码更易读。 一般来说,初始化成员数据的工作是在构造函数里完成的。如果类有多个构造函数并且每个构造函数都分别初始化个别成员时,往往会导致重复的初始化代码分散在各个构造函数里。使用委托构造函数能在一定程序上解决了这个问题,不过有时仍然需要这样的重复初始化,从而原创 2009-10-17 04:41:00 · 629 阅读 · 1 评论