C++
文章平均质量分 79
cyp0207
这个作者很懒,什么都没留下…
展开
-
高质量C++/C编程指南 -- 前言
前言软件质量是被大多数程序员挂在嘴上而不是放在心上的东西! 除了完全外行和真正的编程高手外,初读本书,你最先的感受将是惊慌:“哇!我以前捏造的别难过,作者只不过比你早几年、多几次惊慌而已。 请花一两个小时认真阅读这本百页经书,你将会获益匪浅,这是前面N-1个读者的建议。 一、编程老手与高手的误区 自从计算机问世以来,程序设计就成了令人羡慕的职业,程序员在受人宠爱之后容易发转载 2007-11-15 09:44:00 · 332 阅读 · 0 评论 -
C++对象模型(3)
多态是一种威力强大的设计机制,允许你继承一个抽象的public接口之后,封装相关的类型,需要付出的代价就是额外的间接性--不论是在内存的获得,或是在类的决断上,C++通过class的pointer和references来支持多态,这种程序风格就称为面向对象. 大家好,雷神关于《深度探索C++对象模型》笔记终于又和大家见面了,速度慢的真是可以。好了不浪费时间了,直接进入主题。 这篇笔记转载 2007-11-15 10:27:00 · 405 阅读 · 0 评论 -
java初学者实践教程14-垃圾收集器
用过C++编程的人知道,编的时候总是要跟踪所创建的对象,并且需要显示地删除不用的对象。这种方式太麻烦了,容易出错。写了那么多代码,能记住吗,要是把有用的给删了怎么办,要是有没用的忘删了怎么办?这些问题是很严重的。在java语言中采用的垃圾收集器这种方式管理内存,就很方便也很安全了。垃圾收集器,可以自动确定哪个对象不再被利用,它可以自动将它删除。这也是java语言的一大优势。 我们要转载 2007-11-17 09:58:00 · 399 阅读 · 0 评论 -
轻轻松松从C一路走到C++系列文章之一
摘要 C++技术固然是很时髦的,许多C用户都想在尽可能短的时间内为自己贴上C++的标签。介绍C++的书很多,但只有那些已经侥幸入门的用户才偶尔去翻翻,仍有不少在C++门口徘徊的流浪汉。 本文只针对C用户,最好是一位很不错的老用户(譬如他在遇到最简单的问题时都尝试着使用指针),通过一些C和更好的C++(本文用的是Borland C++3.1版本)例程介绍有关C++的一些知识,让读者朋友们“浅入深转载 2007-11-28 10:37:00 · 556 阅读 · 0 评论 -
轻轻松松从C一路走到C++系列文章之三
4.函数模数(function template) 前面讨论的重载机制用来实现求和操作并不受欢迎,这仿佛还不是C++的风格,例如用户需要求两个其它类型(如字符型)对象的和:Add (a ’b’); 它必须再为之准备一个版本,尽管其名字和代码还是那副样子: char Add (char a char b)转载 2007-11-28 10:40:00 · 608 阅读 · 0 评论 -
C++ Builder初学问与答1
一直以来都想写一点为BCB初学者快速入门的东西,前不久写了几篇《闲谈BCB》想把自己学习BCB中如何来解决难点的方法说给大家,没想到被骂得不成样子。本想不写了,但觉得这些东西留下来能做什么呢?还是用另一种方法来重新演译我的思维吧,最近有些忙,那几篇没有写完的文章,我也会尽快写完的,至于《深入QR》,我想我一定会用另一种手法来写,让你一看就会把QR这个娇女的所有衣服都脱光,不整理到这个地步,我是不敢转载 2007-11-28 11:45:00 · 473 阅读 · 0 评论 -
C++ Builder初学问与答2
2.文本输入组件 11) 问:如果要实现文本输入,在C++Builder中应该怎么办? 答:C++Builder常用文本输入组件来实现,常用的文本输入组件有Edit、MaskEdit 、Memo和RichEdit。他们的主要不同在于Edit和MaskEdit用于输入单行文本,而Memo和RichEdit可以输入多行文本。此外Label组件也可用来进行文本显示。 Edit和MaskEdit是一个窗口转载 2007-11-28 11:46:00 · 621 阅读 · 0 评论 -
C++ Builder初学问与答4
4.列表类组件 31) 问:当我需要使用多个选项的时候,使用单选按钮或复选框来进行选择不是很恰当,因为在窗体上放置大量的按钮既不利于布局的美观,又会消耗大量的系统资源,C++Builder有什么解决办法吗? 答:可以使用列表框(ListBox、CheckListBox)或组合框(ComboBox)这两类最常用的列表组件。 32) 问:列表框有那些主要属性? 答:列表组件ListBox在缺省情况转载 2007-11-28 11:47:00 · 530 阅读 · 0 评论 -
C++ Builder初学问与答5
38) 问:事件OnChange和OnScorll都可以描述滚动条的滚动事件,他们有什么区别吗? 答:事件OnChange和OnScorll是有区别的。只要属性Position的值发生改变,那么无论这个值是用户操作滚动条引起的还是通过程序修改的,都会产生OnChange事件。而OnScorll事件只有在用户操作滚动条时才发生。当用户操作滚动条时,首先发生OnScorll事件,然后OnChange事转载 2007-11-28 11:48:00 · 494 阅读 · 0 评论 -
C++ Builder初学问与答6
6.图形列表组件TreeView 45) 问:有时侯,我希望实现类似资源管理器对文件夹管理的显示方式,和对文件的管理显示方式,在C++Builder中应该怎么办? 答:在C++Builder中可以直接使用图形列表组件来实现,它包括TreeView、ListView以及Outline组件。其中Outline组件实际上是基于Windows 3转载 2007-11-28 11:49:00 · 573 阅读 · 0 评论 -
C++ Builder初学问与答8
8.图形类组件 59)问:Windows是一个图形系统,C++Builder是怎样处理图形的呢? 答:C++Builder通过提供图形组件来处理图形,其中比较常用的有图像组件(Image)、几何图形组件(Shape)和画板组件(PaintBox)。前两个组件位于Additional页中,画板组件位于System页中。 在BCB中,Form、Image、BitMap、PaintBox等都具有绘图能力转载 2007-11-28 11:50:00 · 717 阅读 · 0 评论 -
C++ Builder初学问与答9
9.多页组件 68) 问:我觉得C++Builder的组件模板的管理方式很好,在这个模板中通过单击页就可以在各个页之间进行切换,在C++Builder中我应该怎样来实现呢? 答:我们可以用多页组件来实现,它的好处就是可以在有限的空间中尽量多地存放信息,而且便于把信息分类。就拿组件模板来说吧,在那么小的屏幕中放置了上百个组件,而且并不显得凌乱,这都是多页组件的功劳。 如果窗体上要放置大量的组件,而且转载 2007-11-28 11:51:00 · 540 阅读 · 0 评论 -
C++ Builder初学问与答12
13.对话框组件 96) 问:怎样编写文件打开、保存等对话框? 答:C++Builder为我们提供了许多常用的对话框组件,这些对话框组件都放在组件模板的Dialogs选项卡中,例如Font,Color,Open和Print对话框。其中OpenDialog对话框组件最具有代表性,只要掌握了它的用法,那么你也就会使用其他的对话框组件了。 97) 问:对话框组件的特性有哪些特性呢? 答:对话框组件是一种转载 2007-11-28 11:53:00 · 709 阅读 · 0 评论 -
C++ Builder初学问与答3
3. 按钮类组件 21) 问: 在进行 Windows 程序界面设计中,经常会用到按钮,在 C++Builder 中,按钮一定是通过按钮组件来实现的吗? 答: 是的,并且 C++Builder 的按钮类组件十分丰富。 BCB 提供了两类按钮类组件:一类是执行类按钮,另一类是信息类按钮。所谓执行类按钮是指它们通常用来启动程序运行的,比如按钮、位图按钮、加速按钮。而信息类按钮一般用来获取转载 2007-11-28 11:47:00 · 469 阅读 · 0 评论 -
C++ Builder初学问与答10
10.菜单组件 77) 问:菜单是Windows常用的用户界面。对于一个能够实际应用的程序,菜单是必不可少的组成部分。C++Builder中是怎样实现菜单的? 答:C++Builder为我们提供了两种菜单组件:一种是主菜单组件MainMenu;另一种是弹出菜单PopMenu组件。 主菜单组件的作用是在窗体上生成菜单条。菜单组件刚放到窗体上时,菜单是不可见的,当双击它打开菜单编辑器并且增加了菜单项后转载 2007-11-28 11:51:00 · 485 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第9章 类的构造函数、析构函数与赋值函数
构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。 每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数,如 A(void);转载 2007-11-15 10:13:00 · 365 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第4章 表达式和基本语句
读者可能怀疑:连if、for、while、goto、switch这样简单的东西也要探讨编程风格,是不是小题大做?我真的发觉很多程序员用隐含错误的方式写表达式和基本语句,我自己也犯过类似的错误。表达式和语句都属于C++/C的短语结构语法。它们看似简单,但使用时隐患比较多。本章归纳了正确使用表达式和语句的一些规则与建议。4.1 运算符的优先级 C++/C语言的运算符有数十个转载 2007-11-15 09:56:00 · 379 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第1章 文件结构
第 1 章 文件结构每个 C++/C 程序通常分为两个文件。一个文件用于保存程序的声明( declaration ),称为头文件。另一个文件用于保存程序的实现( implementation ),称为定义( definition )文件。 C++/C 程序的头文件以“ .h ”为后缀, C 程序的定义文件以“ .c ”为后缀, C++ 程序的定义文件通常以“ .cpp ”为后缀(也有一些系转载 2007-11-15 09:46:00 · 359 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第2章 程序的版式
第 2 章 程序的版式版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风格的重要构成因素。 可以把程序的版式比喻为“书法”。好的“书法”可让人对程序一目了然,看得兴致勃勃。差的程序“书法”如螃蟹爬行,让人看得索然无味,更令维护者烦恼有加。请程序员们学习程序的“书法”,弥补大学计算机教育的漏洞,实在很有必要。 2.1 空行空行起着分隔程序段落的作用。空行得转载 2007-11-15 09:51:00 · 401 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第5章 常量
常量是一种标识符,它的值在运行期间恒定不变。C语言用 #define来定义常量(称为宏常量)。C++ 语言除了 #define外还可以用const来定义常量(称为const常量)。5.1 为什么需要常量 如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?(1) 程序的可读性(可理解性)变差。程序员自己会忘记那些数字或字符串是什么意思,用户则更加不知它们从转载 2007-11-15 09:58:00 · 365 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第6章 函数设计
函数是C++/C程序的基本功能单元,其重要性不言而喻。函数设计的细微缺点很容易导致该函数被错用,所以光使函数的功能正确是不够的。本章重点论述函数的接口设计和内部实现的一些规则。函数接口的两个要素是参数和返回值。C语言中,函数的参数和返回值的传递方式有两种:值传递(pass by value)和指针传递(pass by pointer)。C++ 语言中多了引用传递(pass by referen转载 2007-11-15 09:59:00 · 403 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第7章 内存管理
欢迎进入内存这片雷区。伟大的Bill Gates 曾经失言:640K ought to be enough for everybody — Bill Gates 1981程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。7.1内转载 2007-11-15 10:07:00 · 585 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第8章 C++函数的高级特性
对比于C语言的函数,C++增加了重载(overloaded)、内联(inline)、const和virtual四种新机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const与virtual机制仅用于类的成员函数。 重载和内联肯定有其好处才会被C++语言采纳,但是不可以当成免费的午餐而滥用。本章将探究重载和内联的优点与局限性,说明什么情况下应该采用、不该采用以及要警惕转载 2007-11-15 10:09:00 · 394 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第10章 类的继承与组合
对象(Object)是类(Class)的一个实例(Instance)。如果将对象比作房子,那么类就是房子的设计图纸。所以面向对象设计的重点是类的设计,而不是对象的设计。对于C++程序而言,设计孤立的类是比较容易的,难的是正确设计基类及其派生类。本章仅仅论述“继承”(Inheritance)和“组合”(Composition)的概念。注意,当前面向对象技术的应用热点是COM和CORBA,这些转载 2007-11-15 10:14:00 · 354 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第11章 其它编程经验
11.1 使用const提高函数的健壮性看到const关键字,C++程序员首先想到的可能是const常量。这可不是良好的条件反射。如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮。const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const是constant的缩写,“恒定不变”的意思。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健转载 2007-11-15 10:15:00 · 336 阅读 · 0 评论 -
C++对象模型(1)
第一章:关于对象(Object Lessons) 读完这一章使我想到了一个很久以前看到的一个笑话,编写一个HELLO WORLD的程序,随着水平和职务的不一样,程序代码也随着变化。当初看时完全当作笑话来看,现在看来写此笑话的人水平不一般。如果要使你的代码能够最大限度的适应不同的运行环境,和最大限度的复用,则在设计和编写的过程中需要考虑的问题很多,因此代码已变的不在具有C语言的简洁,高效。而牺转载 2007-11-15 10:23:00 · 372 阅读 · 0 评论 -
C++对象模型(2)
史列因:我刚看了你写的“深度探索C++对象模型(1)”,感觉很不错。不过我有一个建议:你说“谁知第一章便如此的难以消化,已经反复读了3遍,还是有些夹生”是很自然的。第一章是一个总览,如果你能全看懂,后面的就没什么看的必要了。第一章的内容后面都有详细介绍,开始只要有个大概印象就可以了。这本书中很多内容都是前后重复的。我建议你先不管看懂看不懂,只管向后看,之后再从头看几遍,那样效果好得多。 我想转载 2007-11-15 10:25:00 · 329 阅读 · 0 评论 -
C++对象模型(4)
雷神跌跌撞撞的读完了《深度探索C++对象模型》的第一章,虽然还是有些疑惑,但是已经感到收获很大。按照朋友的说法,第一章是一个概括的介绍,具体的细节会在以后的章节阐述,如果没有通读本书,第一章还是比较不容易理解的。雷神听过之后信心倍增,也不在有初看此书时的“世界末日”的感觉了(在第2篇雷神感到学了近一年的C++,居然水平如此之差),并且通过自己的努力,还是摸到了些门道,所以让我们继续快乐的出发,踏上转载 2007-11-15 10:28:00 · 396 阅读 · 0 评论 -
C++对象模型(5)
上一篇我们对合成确省的构造函数做了一个了解,这一篇我们继续看看构造函数这个有趣的东西. Copy Constructor是什么?我们经常看到代码中有一些这样的函数调用方式X(X&) (“X of X ref”). http://www.btarticle.com/computer/WinForm/C++/5107.shtml上一篇我们对合成确省的构造函数做了一个了解,这一篇我们继续看看构造函数这个转载 2007-11-15 10:30:00 · 324 阅读 · 0 评论 -
C++对象模型(6)
我们现在还在和构造函数打交道,以前写程序时怎么根本没有考虑过构造函数的事情呢?原来编译器为我们做了这么多的事情,我们都不知道.,要想完全搞明白,看来还需要一段时间.我们继续向下走,进入一个新的章节.每当雷神看完一章后,总是期盼下一章节,因为这意味又一个新的里程开始了.对于这本书更是感觉强烈,因为全书总共才7章. 在第三章一开始,雷神就吃了一惊..书上给出了一个例子: class X{}; c转载 2007-11-15 10:31:00 · 351 阅读 · 0 评论 -
高质量C++/C编程指南 -- 第3章 命名规则
第3章 命名规则比较著名的命名规则当推Microsoft公司的“匈牙利”法,该命名规则的主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p。如果一个变量由ppch开头,则表明它是指向字符指针的指针。“匈牙利”法最大的缺点是烦琐,例如int i, j, k; float x, y, z;倘若采用“匈牙利”命名规则,转载 2007-11-15 09:53:00 · 322 阅读 · 0 评论 -
C++ Builder初学问与答11
11.工具条组件 87) 问:工具条是Windows编程经常要用的, C++Builder能不能实现这个功能呢? 答:当然可以,工具条是由许多具有图形的按钮组成的,这些按钮被分隔符分隔成许多组,每个组都能够完成特定的工作。工具条上的按钮具有与位图按钮相似的特性——可以拥有多个位图,当按钮处于不同状态时,例如按下、失效等,将显示不同的位图。以前C++Builder制作工具条的方法是通过把加速按钮放在转载 2007-11-28 11:52:00 · 704 阅读 · 0 评论