- 博客(46)
- 资源 (6)
- 收藏
- 关注
转载 2006年it人士必去的10个网站
1、chinaunix网址:http://www.chinaunix.net/简介:中国最大的linux/unix技术社区。 2、itpub网址:http://www.itpub.net/ 简介:有名气的IT技术论坛,看看它的alexa排名就知道有多火了,尤其以数据库技术讨论热烈而闻名。ITPUB论坛的前身是建立在smiling的oracle小组。3、51cto网址:http://www.
2006-05-31 00:17:00 924 1
转载 剖析C++模板(下)
虚模板成员函数在模板类中的嵌套是不允许的XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />模板的特殊化全局的特殊化局部特殊化一个特殊化的例子你可以像使用普通类的方法来使用模板类,这一点是毫无疑问的,例如:你可以继承、可以创建一个从现有模板继承过来的并已经初始化的模板。如果vecto
2006-05-30 22:43:00 1005
转载 剖析C++模板(中)
函数模板中的类型归纳 一个非常简单但很有用的例子: //: :arraySize.h // Uses template type induction to // discover the size of an array #ifndef ARRAYSIZE_H #define ARRAYSIZE_H template int asz(T (&)[size]) { re
2006-05-30 22:41:00 1032
转载 剖析C++模板(上)
无类型的模板参数 这里有一个用来产生随机数的类,它可以接受一个的数字,然后通过重载()符号,来产生一个符合要求的随机数。具体代码如下://: C03:Urand.h// Unique random number generator#ifndef URAND_H#define URAND_H#include #include templateclass
2006-05-30 22:38:00 1133
转载 c++的头文件
1、传统 C++#include //设定插入点#include //字符处理#include //定义错误码#include //浮点数处理#include //文件输入/输出#include //参数化输入/输出#include //数据流输入/输出#include //定义各种数据类型最值常量#include //定
2006-05-30 22:13:00 1018
转载 做人学佛百句良言
一、人之所以痛苦,在于追求错误的东西。 二、与其说是别人让你痛苦,不如说自己的修养不够。 三、如果你不给自己烦恼,别人也永远不可能给你烦恼。因为你自己的内心,你放不下。四、好好的管教你自己,不要管别人。 五、不宽恕众生,不原谅众生,是苦了你自己。 六、别说别人可怜,自己更可怜,自己修行又如何?自己又懂得人生多少? 七、学佛是对自己的良心交待,不是做给别人看的。
2006-05-30 21:15:00 1089 2
转载 什么是回调函数(callback)(转载)
回调函数,就是由你自己写的。你需要调用另外一个函数,而这个函数的其中一个参数,就是你的这个回调函数名。这样,系统在必要的时候,就会调用你写的回调函数,这样你就可以在回调函数里完成你要做的事。模块A有一个函数foo,它向模块B传递foo的地址,然后在B里面发生某种事件(event)时,通过从A里面传递过来的foo的地址调用foo,通知A发生了什么事情,让A作出相应反应。 那么我们就把foo称为回
2006-05-30 19:38:00 2474 1
转载 typedef 用法小结
来源一:Using typedef to Curb Miscreant Code Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。 typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更
2006-05-30 19:23:00 1006
转载 函数指针与typedef
作者:csumck 关于C++中函数指针的使用(包含对typedef用法的讨论) (一)简单的函数指针的应用。//形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2); } 第一行定义了一个指针变量pF
2006-05-30 19:08:00 1153
原创 以上文章是effectiveC++ 手册的译文
来源是http://www.leftworld.net/online/effectivec/index.htmlLostmouse简介认识CSDN已经很久了,但开始写技术文章不过是不久前的事,开辟这个专栏更是出于偶然。因为工作方面的原因,不能保证自己一直会有大块的时间来维护这个专栏,但我会尽力。至于Lostmouse本人,并非卡通中那只聪明可爱的小老鼠;相反,却是一只将至而立却还在迷惘的老猫:
2006-05-29 22:18:00 1037
转载 第七章 杂项
第七章 杂项 进行高效的C++程序设计有很多准则,其中有一些很难归类。本章就是专门为这些准则而安排的。不要因此而小看了它们的重要性。要想写出高效的软件,就必须知道:编译器在背后为你(给你?)做了些什么,怎样保证非局部的静态对象在被使用前已经被初始化,能从标准库得到些什么,从何处着手深入理解语言底层的设计思想。本书最后的这个章节,我将详细说明这些问题,甚至更多其它问题。条款45: 弄清C
2006-05-29 22:15:00 997
转载 第六章 继承和面向对象设计(43-44)
条款43: 明智地使用多继承要看是谁来说,多继承(MI)要么被认为是神来之笔,要么被当成是魔鬼的造物。支持者宣扬说,它是对真实世界问题进行自然模型化所必需的;而批评者争论说,它太慢,难以实现,功能却不比单继承强大。更让人为难的是,面向对象编程语言领域在这个问题上至今仍存在分歧:C++,Eiffel和the Common LISP Object System (CLOS)提供了MI;Smallt
2006-05-29 22:12:00 930
转载 第六章 继承和面向对象设计(37-42)
条款37: 决不要重新定义继承而来的非虚函数有两种方法来看待这个问题:理论的方法和实践的方法。让我们先从实践的方法开始。毕竟,理论家一般都很耐心。假设类D公有继承于类B,并且类B中定义了一个公有成员函数mf。mf的参数和返回类型不重要,所以假设都为void。换句话说,我这么写:class B {public: void mf(); ...};class D: public B
2006-05-29 22:10:00 908
转载 第六章 继承和面向对象设计(35-36)
第六章 继承和面向对象设计很多人认为,继承是面向对象程序设计的全部。这个观点是否正确还有待争论,但本书其它章节的条款数量足以证明,在进行高效的C++程序设计时,还有更多的工具听你调遣,而不仅仅是简单地让一个类从另一个类继承。然而,设计和实现类的层次结构与C语言中的一切都有着根本的不同。只有在继承和面向对象设计领域,你才最有可能从根本上重新思考软件系统构造的方法。另外,C++提供了多种很令人
2006-05-29 22:08:00 871
转载 第五章 类和函数: 实现
第五章 类和函数: 实现c++是一种高度类型化的语言,所以,给出合适的类和模板的定义以及合适的函数声明是整个设计工作中最大的一部分。按理说,只要这部分做好了,类、模板以及函数的实现就不容易出问题。但是,往往人们还是会犯错。犯错的原因有的是不小心违反了抽象的原则:让实现细节可以提取类和函数内部的数据。有的错误在于不清楚对象生命周期的长短。还有的错误起源于不合理的前期优化工作,特别是滥用inl
2006-05-29 22:04:00 1228
转载 第四章 类和函数:设计与声明
条款23: 必须返回一个对象时不要试图返回一个引用据说爱因斯坦曾提出过这样的建议:尽可能地让事情简单,但不要过于简单。在c++语言中相似的说法应该是:尽可能地使程序高效,但不要过于高效。一旦程序员抓住了“传值”在效率上的把柄(参见条款22),他们会变得十分极端,恨不得挖出每一个隐藏在程序中的传值操作。岂不知,在他们不懈地追求纯粹的“传引用”的过程中,他们会不可避免地犯另一个严重的错误:传递
2006-05-29 22:00:00 1000
转载 第四章 类和函数:设计与声明
第四章 类和函数:设计与声明 在程序中声明一个新类将导致产生一种新的类型:类的设计就是类型设计。可能你对类型设计没有太多经验,因为大多数语言没有为你提供实践的机会。在c++中,这却是很基本的特性,不是因为你想去做才可以这么做,而是因为每次你声明一个类的时候实际上就在做,无论你想不想做。设计一个好的类很具有挑战性,因为设计好的类型很具有挑战性。好的类型具有自然的语法,直观的语义和高效的实
2006-05-29 21:56:00 1055
转载 第三章 构造函数,析构函数和赋值操作符
第三章 构造函数,析构函数和赋值操作符 几乎所有的类都有一个或多个构造函数,一个析构函数和一个赋值操作符。这没什么奇怪的,因为它们提供的都是一些最基本的功能。构造函数控制对象生成时的基本操作,并保证对象被初始化;析构函数摧毁一个对象并保证它被彻底清除;赋值操作符则给对象一个新的值。在这些函数上出错就会给整个类带来无尽的负面影响,所以一定要保证其正确性。本章我将指导如何用这些函数来搭建一个结
2006-05-29 21:49:00 1540 1
转载 条款8: 写operator new和operator delete时要遵循常规
条款8: 写operator new和operator delete时要遵循常规 自己重写operator new时(条款10解释了为什么有时要重写它),很重要的一点是函数提供的行为要和系统缺省的operator new一致。实际做起来也就是:要有正确的返回值;可用内存不够时要调用出错处理函数(见条款7);处理好0字节内存请求的情况。此外,还要避免不小心隐藏了标准形式的new,不过这是条款
2006-05-29 21:44:00 1484
转载 第二章 内存管理
第二章 内存管理 c++中涉及到的内存的管理问题可以归结为两方面:正确地得到它和有效地使用它。好的程序员会理解这两个问题为什么要以这样的顺序列出。因为执行得再快、体积再小的程序如果它不按你所想象地那样去执行,那也一点用处都没有。“正确地得到”的意思是正确地调用内存分配和释放程序;而“有效地使用”是指写特定版本的内存分配和释放程序。这里,“正确地得到”显得更重要一些。然而说到正确性,c+
2006-05-29 21:40:00 838
转载 条款4:尽量使用c++风格的注释
条款4:尽量使用c++风格的注释 旧的c注释语法在c++里还可以用,c++新发明的行尾注释语法也有其过人之处。例如下面这种情形: if ( a > b ) { // int temp = a; // swap a and b // a = b; // b = temp;}假设你出于某种原因要注释掉这个代码块。从软件工程的角度看,写这段代码的程序员也做得很好
2006-05-29 21:35:00 1146
转载 条款2:尽量用而不用
条款2:尽量用而不用 是的,scanf和printf很轻巧,很高效,你也早就知道怎么用它们,这我承认。但尽管他们很有用,事实上scanf和printf及其系列还可以做些改进。尤其是,他们不是类型安全的,而且没有扩展性。因为类型安全和扩展性是C++的基石,所以你也要服从这一点。另外,scanf/printf系列函数把要读写的变量和控制读写格式的信息分开来,就象古老的FORTRAN那样。是该向
2006-05-29 21:33:00 769
转载 条款3:尽量用new和delete而不用malloc和free
条款3:尽量用new和delete而不用malloc和free malloc和free(及其变体)会产生问题的原因在于它们太简单:他们不知道构造函数和析构函数。假设用两种方法给一个包含10个string对象的数组分配空间,一个用malloc,另一个用new: string *stringarray1 =static_cast(malloc(10 * sizeof(str
2006-05-29 21:33:00 1184
转载 条款1:尽量用const和inline而不用#define
条款1:尽量用const和inline而不用#define这个条款最好称为:“尽量用编译器而不用预处理”,因为#define经常被认为好象不是语言本身的一部分。这是问题之一。再看下面的语句: #define ASPECT_RATIO 1.653编译器会永远也看不到ASPECT_RATIO这个符号名,因为在源码进入编译器之前,它会被预处理程序去掉,于是ASPECT_RATIO不会加入
2006-05-29 21:32:00 673
原创 第一章 从C转向C++
第一章 从C转向C++对每个人来说,习惯C++需要一些时间,对于已经熟悉C的程序员来说,这个过程尤其令人苦恼。因为C是C++的子集,所有的C的技术都可以继续使用,但很多用起来又不太合适。例如,C++程序员会认为指针的指针看起来很古怪,他们会问:为什么不用指针的引用来代替呢?C是一种简单的语言。它真正提供的只有有宏、指针、结构、数组和函数。不管什么问题,C都靠宏、指针、结构、数组和函数来解决。而
2006-05-29 21:30:00 903
转载 名字空间的含义及作用
名字空间是为了防止名字污染在标准 C++ 中引入的。它可以将其中定义的名字隐藏起来,不同的名字空间中可以有相同的名字而互不干扰,使用时用域操作符(::)来引用。namespace 名字{ 定义的数据; 定义的函数; 也可以是定义的类。。。。。。}在应用的时候 使用这些数据和函数名称太麻烦给定义在同一德的名字空间内不用繁琐的去重新书写和定义用名字空间就可以了我觉得有点像类 又有
2006-05-29 08:36:00 5731
转载 剖析“extern C”的含义
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的
2006-05-29 08:27:00 943 1
原创 明天去听师兄答辩
这几天保定的天气特别的奇怪。今天下了一天的雨,而且还特别的冷,不过这次可不敢抽烟了。头几天为了赶活,熬夜的时候可没少抽,嗓子都疼了。看来得休息几天了。 今天看了一天的关于P2P方面的论文、技术文档,对它有了大概的了解。 明天是研三的师兄师姐答辩,为了掌握他们研究的成果和明年我们的答辩,所以明天我得去听听。还得早起,因为明天该去医院换药了。到现在伤口还没
2006-05-26 23:11:00 1134 1
原创 今天我们讨论一下如何做那个项目
该项目是河北省职工医学院的医师认证考试系统。今晚我们三人碰了个头,讨论一下怎么做个这个系统。由于六月初要开题,所以不能马上做。只能到六月初才能开始,现在要做的是,确定好用什么环境开发,和开发的大致时间。 经过我们的讨论,计划使用环境:C#/MSSQL,开发时间初步计划使用一个月的时间。由于老闫有比较成熟的开发经验,所以选他做我们的组长,我负责和客户联系、交互。项
2006-05-25 23:38:00 893 1
原创 在局域网内实现图像的实时传输
作者:bat603网址:http://blog.csdn.net/bat603/(本文可以随意转载及修改并可用于任何用处,但须注明作者和网址)在局域网内实现图像的实时传输(实现环境bcb6.0+MSSQL) 本来要去睡觉的,但是为了整理一下该文档,还是坐在了电脑旁。明天睡个大头觉。 之所以使用bcb6.0,是因为用它开发速度快。但是一个前辈曾经给我说过,bcb
2006-05-25 00:58:00 5716
原创 今天终于把网络协作学习系统做完了
历时两个月的不间断工作,经过若干次的挑灯夜战,今天终于把该系统做完了。心里很平静,没有了以前做完一个工作的兴奋,也许在这上面花的精力太多了,完成是必然的缘故。 回忆一下这两个月的奋斗史,一切从无到有,很多东西都是在需要的时候才去查资料,然后尝试,经过很多次的失败,然后测试通过。其间的感受只有经历过的人才能理解。 当然从中也学习了不少知识,掌握了不少开发
2006-05-24 23:57:00 1031
原创 谁能相信,我们竟然在决赛中拿了第二名!
今天晚上进行了“八荣八耻”和“延安精神”知识竞赛决赛,上一周我们意外地进入决赛已经是个奇迹。所以我们已经不需要去争什么了,能参加决赛已经是很令人兴奋的事情了。头几天,由于一直赶朋友的毕业设计,所以也没有时间看,今天上午还有地大的课,幸亏下午的课调了,否则估计我没有时间去复习这些知识。估计那两个队友,也没有什么激情了。因为进入决赛的对手太强了,人文、教育、管理学院,还有一个神秘的
2006-05-23 22:41:00 877 1
原创 怎样判断一个坐标是否在已知三角形内?
根据直线Ax+By+C=0和点P的关系知识可知,把点P代入式子Ax+By+C的值的正负,来判断点P在直线的位置。又知三角形的内心必在三角形内部,所以我们可以把测试点和内心比较,即可得出该点是否在三角形内部。源代码:(在BCB6.0测试通过)void __fastcall TForm1::Button1Click(TObject *Sender){ float fPo
2006-05-22 20:21:00 1795
转载 制作小精灵代码(c++biuder 6)
我用c++biuder 5制作小精灵是可以通过,可是c++biuder 6时总是跳不过去,总是说TAgent未定义,那位有做过的代码请给我一份,或提示我怎样调通。 问题点数:100、回复次数:23 1楼 F117p (走两步,你走两步?) 回复于 2005-06-11 22:29:30 得分 0 先安装这个TAgent。 在Import
2006-05-22 02:10:00 2137
转载 如何在C++builder中调用Microsoft agent
选择自 sas_razor 的 Blog弄了整整一个晚上,看了无数大师们的资料,终于把merlin显示在我的桌面上。网上关于这方面的资料有不少,但是照搬这些程序的时候总是有很多错误,下面是CSDN里的一个贴子: CSDN - 专家门诊 - C++ Builder VCL组件
2006-05-22 00:39:00 1096 1
原创 平凡的一天
上午帮一个朋友做毕业设计:网络化协作学习系统。下午去家教,出来后脑袋都大了。晚上继续做那个毕业设计。 唯一的感受,就是今天的天气真不够意思。明明知道我穿的是短袖,还那么冷。根本不像已经进入夏天了。如果一直这样的话,麦子怎么结穗儿呀。该冷的时候要冷,该热的时候要热,这样才符合规律。
2006-05-21 23:32:00 746 1
原创 今天接了一个小的工程
今天杨刚给我介绍了一个工程,是一个网络版的MIS系统,关于医院方面的。工程不小,我拉了王子和老闫一起过去,说晚上那个人(田哥)请我们吃饭。 于是下午我和周周、英子、海燕去逛街了。在买一套夏天的衣服武装一下自己。去年的衣服都没法穿了,为什么?只因为自己的身体形状发生了巨大改变,唉,痛苦呀。可是这次受到的打击更大。出去买裤子,挑了很长时间,好不容易发现一个合适的,服务
2006-05-20 23:56:00 1005 1
原创 雨、烟
今天上午外面很闷热,下午突然间凉快起来,预示着晚上的雨。晚上果然下雨了,只是来的晚了一些。十点多,同学们都回去了,雨来了。同时,我的烟瘾也上来了。我的烟瘾总是和自己的心情有关,所以我一直不承认我是个烟民的原因,虽然朋友们都不怎么认同。 一场秋雨一层寒,而夏雨却正好相反。所以这场雨来不来也无所谓。如果在家里,这场雨也不见得是什么好事,因为现在小麦正在接穗的时候,下雨反
2006-05-19 23:35:00 1620 2
转载 P2P之UDP穿透NAT的原理与实现(附源代码)
P2P 之 UDP穿透NAT的原理与实现(附源代码)原创:shootingstars参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原
2006-05-17 20:53:00 2149
原创 我们竟然进决赛了!
任何一个了解我们班的人,谁能相信以我和bo的实力,竟然在“八荣八耻”知识问答中竟然闯进了决赛!在签到的时候,一个人是我的同学说,啊,你们也来了?一种认为我们来胡闹的语气!当然我们抱的目的也是保七争六!(注:一共七个队) 但是在比赛当中,主持人问的问题我们竟然差不多都知道,原来我们已经准备得很好了!尤其是wangpei,发挥的相当不错!我们自己竟然都不知道!尤其是王培,准备
2006-05-16 21:49:00 813
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人