Welcome 微信登录

首页 / 软件开发 / C++

高质量C++/C编程指南-第11章-其它编程经验(1)

高质量C++/C编程指南-第11章-其它编程经验(1)

高质量C++/C编程指南-第11章-其它编程经验(1)2007-05-06林锐11.1 使用const提高函数的健壮性看到const关键字,C++程序员首先想到的可能是const常量。这可不是良好的条件反射。如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮。const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。 const是constant的缩写,“恒定不变”的意思。被const修饰的东西都受到强制保护...
高质量C++/C编程指南-第11章-其它编程经验(2)

高质量C++/C编程指南-第11章-其它编程经验(2)

高质量C++/C编程指南-第11章-其它编程经验(2)2007-05-06林锐11.1.3 const成员函数任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误,这无疑会提高程序的健壮性。以下程序中,类stack的成员函数GetCount仅用于计数,从逻辑上讲GetCount应当为const函数。编译器将指出GetCount函数中的错误。class ...
C++语言基础-入门简介

C++语言基础-入门简介

C++语言基础-入门简介2007-05-06C++是个强大的语言,可以用于做别的语言做不了的工作。但是,这种强大功能是有代价的。开始使用C++时,你可能会遇到内存溢出和访问失效等问题,使程序死机。这里用最简短的篇幅介绍C++语言基础。C++语言本身有专著介绍,这种书还特别厚,所以别指望我能用三言两语说清楚。读者学完本书并使用C++ Builder一般时间之后,最后对C++语言再作更深入的了解。 C++可以最充分地利用面向对象编程(OOP)的优势。OOP不只...
C++语言基础-C++数据类型

C++语言基础-C++数据类型

C++语言基础-C++数据类型2007-05-06在有些编程语言中,可以向变量赋予任何数值类型。例如,下面是BASIC代码的例子:x = 1;x = 1000;x = 3.14;x = 457000;在BASIC中,翻译器能考虑根据数字长度和类型分配空间。而在C++,则必须先声明变量类型再使用变量:int x1 = 1;int x = 1000;float y = 3.14;long z = 457000;这样,编译器就可以进行类型检查,确保程序运行时一切...
C++语言基础-C++操作符

C++语言基础-C++操作符

C++语言基础-C++操作符2007-05-06操作符(operator)用于操作数据。操作符进行计算、检查等式、进行赋值、操作变量和进行其它更奇怪的工作。C++中有许多操作符,这里不想列出全部,只列出最常用的操作符,如下表所示。表1.2常用C++操作符操作符说明举例 算术运算符 + 加 x=y+z; - 减 x=y-z; * 乘 x=y*z; / 除 x=y/z; 赋值运算符 = 赋值 x=10; += 赋值与和 x+=10;(等于x=x+10;) -=...
C++语言基础-函数规则

C++语言基础-函数规则

C++语言基础-函数规则2007-05-06· 函数可以取任意多个参数或不取参数。 · 函数可以返回一个值,但函数不强求返回一个值。 · 如果函数返回void类型,则不能返回数值。 如果要让返回void类型的函数返回数值,则会发生编译错误。返回void类型的函数不需包含return语句,但也可以包含这个语句。如果没有return语句,则函数到达末尾的结束大括号时自动返回。 · 如果函数原型表示函数返回...
C++语言基础-字符数组

C++语言基础-字符数组

C++语言基础-字符数组2007-05-06奇怪的是,C++不支持字串变量(放置文本的变量),C++程序中的字串是用char数据类型的数组表示的。例如,可以将变量赋予char数组如下: char text[] = "This is a string."; 这就在内存中分配18字节的内存空间用于存放字串。根据你的领悟能力,也许你会发现该字串中只有17个字符。分配18个字节的原因是字串要以终止null结尾,C++在分配内存空间时把终止nul...
C++语言基础-字串操作函数

C++语言基础-字串操作函数

C++语言基础-字串操作函数2007-05-06如果你用过具有string数据类型的编程语言,你可能很不习惯,别人也有同感,所以标准C语言库中提供了几个字串操作函数。表1.3列出了最常用的字串操作函数及其用法说明。关于每个函数的详细说明和实例,见C++ Builder联机帮助。 表1.3字串操作函数 函数 说明 strcat() 将字串接合到目标字串的末尾 strcmp() 比较两个字串是否相等 strcmpi() 比较两个字串是否相等,不考虑大小写 st...
C++语言基础-if语句

C++语言基础-if语句

C++语言基础-if语句2007-05-06if语句用于测试条件并在条件为真时执行一桌或几条语句。 说明:if表达式后面不能带分号,否则它本身表示代码中的空语句,使编译器将空语句解释为在条件为真时执行的语句。 if (x == 10); // Warning! Extra semicolon! DoSomething(x); 这里DoSomething()函数总会执行,因为编译器不把它看成在条件为真时执行的第一条语句。由于这个代码完全合法(但无用),所以编...
深度探索C++对象模型(1)

深度探索C++对象模型(1)

深度探索C++对象模型(1)2007-05-06第一章:关于对象(Object Lessons) 读完这一章使我想到了一个很久以前看到的一个笑话,编写一个HELLO WORLD的程序,随着水平和职务的不一样,程序代码也随着变化。当初看时完全当作笑话来看,现在看来写此笑话的人水平不一般。如果要使你的代码能够最大限度的适应不同的运行环境,和最大限度的复用,则在设计和编写的过程中需要考虑的问题很多,因此代码已变的不在具有C语言的简洁,高效。而牺牲了这些优势换来的...
深度探索C++对象模型(2)

深度探索C++对象模型(2)

深度探索C++对象模型(2)2007-05-06史列因:我刚看了你写的“深度探索C++对象模型(1)”,感觉很不错。不过我有一个建议:你说“谁知第一章便如此的难以消化,已经反复读了3遍,还是有些夹生”是很自然的。第一章是一个总览,如果你能全看懂,后面的就没什么看的必要了。第一章的内容后面都有详细介绍,开始只要有个大概印象就可以了。这本书中很多内容都是前后重复的。我建议你先不管看懂看不懂,只管向后看,之后再从头...
深度探索C++对象模型(3)

深度探索C++对象模型(3)

深度探索C++对象模型(3)2007-05-06介绍 多态是一种威力强大的设计机制,允许你继承一个抽象的public接口之后,封装相关的类型,需要付出的代价就是额外的间接性--不论是在内存的获得,或是在类的决断上,C++通过class的pointer和references来支持多态,这种程序风格就称为"面向对象". 大家好,雷神关于《深度探索C++对象模型》笔记终于又和大家见面了,速度慢的真是可以。好了不浪费时间了,直接进入主题。 这篇...
深度探索C++对象模型(4)

深度探索C++对象模型(4)

深度探索C++对象模型(4)2007-05-06雷神跌跌撞撞的读完了《深度探索C++对象模型》的第一章,虽然还是有些疑惑,但是已经感到收获很大。按照朋友的说法,第一章是一个概括的介绍,具体的细节会在以后的章节阐述,如果没有通读本书,第一章还是比较不容易理解的。雷神听过之后信心倍增,也不在有初看此书时的“世界末日”的感觉了(在第2篇雷神感到学了近一年的C++,居然水平如此之差),并且通过自己的努力,还是摸到了些门道,所以让我们继续快乐...
深度探索C++对象模型(5)

深度探索C++对象模型(5)

深度探索C++对象模型(5)2007-05-06上一篇我们对合成确省的构造函数做了一个了解,这一篇我们继续看看构造函数这个有趣的东西. Copy Constructor是什么?我们经常看到代码中有一些这样的函数调用方式X(X&) (“X of X ref”). 这个函数用用户自定义类型作为参数,那它的参数的构造便是由Copy Constructor负责的. 可见这个玩意非常重要,实际上Copy Constructor是由编译...
深度探索C++对象模型(6)

深度探索C++对象模型(6)

深度探索C++对象模型(6)2007-05-06我们现在还在和构造函数打交道,以前写程序时怎么根本没有考虑过构造函数的事情呢?原来编译器为我们做了这么多的事情,我们都不知道.,要想完全搞明白,看来还需要一段时间.我们继续向下走,进入一个新的章节.每当雷神看完一章后,总是期盼下一章节,因为这意味又一个新的里程开始了.对于这本书更是感觉强烈,因为全书总共才7章. 在第三章一开始,雷神就吃了一惊..书上给出了一个例子: class X{}; class Y:pu...
深度探索C++对象模型(7)

深度探索C++对象模型(7)

深度探索C++对象模型(7)2007-05-06关于《深度探索C++对象模型》停顿了半个月,今天继续啃这个骨头,我的学习进入了第四章,函数的语意学。先做个复习C++支持三种成员函数:静态、虚、和非静态。每一种函数的调用方式都不同,当然他们的作用也会有区别,一般来说我们只要掌握根据我们的需要正确的使用这三种类型的成员函数便可以了,至于内部是如何运做的我们可以不知。但是《深度探索C++对象模型》正是让我们对这些不知道的东西进行深度探索的一本书。通过前面的学习,...
<< 151 152 153 154 155 156 157 158 159 160 >>