之所以在学习到“类”以后要重提内联函数,是因为定义类的成员函数与全局函数在这方面有区别。区别在于,如果把函数的实体放在类的定义内,则该函数将自动成为内联函数。
[ 查看全文 ]
关键词:C++,VC,Primer,MFC,编程
读书笔记 - C++ Primer
2006-09-17 22:15
以前我知道可以用typedef来为类型起个别名,如“typedeflongINDEX;”。给long这样的类型起别名主要目的不是简化程序的书写,它有两个用处:一是表明该类型的特殊作用,二是将来有可能要改变这种类型(比如提高精度),如果直接声明为long型则失去了程序的可惟护性——每一个变量的声明都要改动;而声明为INDEX则使维护程序变得十分简单——只要改一下typedef语句即可。
然而今天我才发现,这么...
然而今天我才发现,这么...
[ 查看全文 ]
关键词:C++,VC,Primer,MFC,编程,优化,健壮
读书笔记 - C++ Primer
2006-09-16 23:55
程序员在编写程序时,总是把运行应用程序的人看作用户。但是,类的出现使这个身份发生了微妙的变化。
类并不会直接给普通计算机用户使用,而是给其他程序员使用。于是,编写类的程序员需要将使用类的程序员视作用户。
这样细化将程序员分成两种,也许在某些时候类的设计者和使用者是同一个人——比如我,我单位一共只有一个程序员。但是在编写程序中时刻记住这个分工是有好处的。将程序员细分为两种至少有以下好处:
一、在考虑最终软件功能时,不需要考虑类功...
类并不会直接给普通计算机用户使用,而是给其他程序员使用。于是,编写类的程序员需要将使用类的程序员视作用户。
这样细化将程序员分成两种,也许在某些时候类的设计者和使用者是同一个人——比如我,我单位一共只有一个程序员。但是在编写程序中时刻记住这个分工是有好处的。将程序员细分为两种至少有以下好处:
一、在考虑最终软件功能时,不需要考虑类功...
[ 查看全文 ]
关键词:C++,VC,Primer,MFC,编程
读书笔记 - C++ Primer
2006-09-15 23:41
引用:类是C++中最重要的特征。C++语言的早期版本被命名为“带类的C”。
引用:最简单地说来,类就是定义了一个新的类型和一个新的作用域。
写本文之前,我曾停下来考虑过:怎样才能概括出类?确切地说,我们从依葫芦画瓢开始一步一步写自己的类,慢慢地都会把类给学会。这中间可能要走一段弯路,总有一天会“蓦然回首,那人却在灯火阑珊处。”但是,要自己总结出什么是类,似乎还有点难度。
C++之前的struct被叫做...
引用:最简单地说来,类就是定义了一个新的类型和一个新的作用域。
写本文之前,我曾停下来考虑过:怎样才能概括出类?确切地说,我们从依葫芦画瓢开始一步一步写自己的类,慢慢地都会把类给学会。这中间可能要走一段弯路,总有一天会“蓦然回首,那人却在灯火阑珊处。”但是,要自己总结出什么是类,似乎还有点难度。
C++之前的struct被叫做...
[ 查看全文 ]
关键词:C++,VC,Primer,MFC,编程
读书笔记 - C++ Primer
2006-09-15 23:40
我还真没想到字符串流的作用在哪里。字符串本身就存放在内存里,对它进行读取是从内存读到内存,对它进行写入也是从内存写到内存。那么,剩下的就是所谓的优化程序了?
本书在讲解字符串流的读入时,举的例子是先用getline来获得整行,然后借>>操作来获取每一个单词。那么,我想,既使我不使用getline,也未必不可以直接获取单词。
倒是在讲解字符串流的写操作时让我想到了一点用处:它可以将不同类型的数据一下子转化成字符串,还可以任意组合。
intval...
本书在讲解字符串流的读入时,举的例子是先用getline来获得整行,然后借>>操作来获取每一个单词。那么,我想,既使我不使用getline,也未必不可以直接获取单词。
倒是在讲解字符串流的写操作时让我想到了一点用处:它可以将不同类型的数据一下子转化成字符串,还可以任意组合。
intval...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
2006-09-12 01:19
文件流对象和控制台流对象的区别有以下两点:
一、文件流对象需要声明,cin、cout和cerr等不需要声明,也不允许声明。
二、文件流对像要与特定的文件绑定,并且需要自己管理文件的打开与关闭。因为cin的目标就是标准控制台,而文件流却可以操作不同名称的文件。
文件的打开有两种方式:一是在流对象的定义时直接用文件名来初始化,二是调用open函数。前者是方便一点,不过对象只能初始化一次。如果一个流对象要访问多个文件,还得用open。
在op...
一、文件流对象需要声明,cin、cout和cerr等不需要声明,也不允许声明。
二、文件流对像要与特定的文件绑定,并且需要自己管理文件的打开与关闭。因为cin的目标就是标准控制台,而文件流却可以操作不同名称的文件。
文件的打开有两种方式:一是在流对象的定义时直接用文件名来初始化,二是调用open函数。前者是方便一点,不过对象只能初始化一次。如果一个流对象要访问多个文件,还得用open。
在op...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
2006-09-12 01:04
“PleaseInputYourName:_”
如果您编写的程序有以上功能,在显示一行提示语后等待输入,可惜的是用户只看见了光标在一闪一闪,却没看见那行提示语,那岂不是一片好心喂了狗了?
将信息写入控制台、磁盘文件之前都会在缓冲区中呆上一会儿,这么做的优点不用我来说,但是缺点也很明显:如果没有及时刷新缓冲区,将可能会造成损失。比如程序的崩溃会造成磁盘文件的残缺,给调试带来麻烦。
那么,我们要做的就是在必要的时候亲自刷新缓冲区。...
如果您编写的程序有以上功能,在显示一行提示语后等待输入,可惜的是用户只看见了光标在一闪一闪,却没看见那行提示语,那岂不是一片好心喂了狗了?
将信息写入控制台、磁盘文件之前都会在缓冲区中呆上一会儿,这么做的优点不用我来说,但是缺点也很明显:如果没有及时刷新缓冲区,将可能会造成损失。比如程序的崩溃会造成磁盘文件的残缺,给调试带来麻烦。
那么,我们要做的就是在必要的时候亲自刷新缓冲区。...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
2006-09-12 00:19
如果你的程序期待用户输入一个整数,而用户偏偏输入了“abc”怎么办?放心,cin可以直接放入if或while的括号中,原因是cin可以通过标准转换变成bool变量。
进而,如果我们设计的程序须要更人性化的功能,仅判断流的一个状态是不够的,标准流为我们提供了“bad”、“fail”、“eof”有“good”成员,还提供了“setstate...
进而,如果我们设计的程序须要更人性化的功能,仅判断流的一个状态是不够的,标准流为我们提供了“bad”、“fail”、“eof”有“good”成员,还提供了“setstate...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
2006-09-11 23:46
即使你没有学到这一章,你也早该认识到cin和cout的特殊性,至少你应该发现,这两个对象是不用你声明的。
说它们是特殊的,除cin和cout不需要声明以外,包括它们在内的所有流操作对象也不允许被复制和赋值。
有时,程序员未必是有意复制和赋值的,比如把标准IO对象于在值传递的函数参数中,或者用值传递的方式作为函数的返回值。
ofstreamout1,out2;
out1=out2;
ofstreamprint(ofstream);...
说它们是特殊的,除cin和cout不需要声明以外,包括它们在内的所有流操作对象也不允许被复制和赋值。
有时,程序员未必是有意复制和赋值的,比如把标准IO对象于在值传递的函数参数中,或者用值传递的方式作为函数的返回值。
ofstreamout1,out2;
out1=out2;
ofstreamprint(ofstream);...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
2006-09-11 23:45
我撰写的《C++Primer阅读笔记》第五篇《cout<<(wchar_t类型变量)体验》事后被证明是一篇错误的文章,错误在于我误解了书中的内容,将只能用于char类型的cout用来输出wchat_t类型数据。文章发表后不久就有人为我指出了这个错误,在此感谢文章的读者为我细心纠错与大方的指导。
事实上,为了提供对国际字符的支持,标准IO库提供了一套复制品,它们专们用于对宽字符进行处理。
当计算机们被联成网络、当世界上产生了即时共享信息的须求。字符集就是...
事实上,为了提供对国际字符的支持,标准IO库提供了一套复制品,它们专们用于对宽字符进行处理。
当计算机们被联成网络、当世界上产生了即时共享信息的须求。字符集就是...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
2006-09-11 23:23