《c++ primer》读书笔记3

原创 2004年07月15日 14:04:00

笔记范围:1.3节到1.4<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

说来惭愧,在学c的时候对于1.3节中所讲的内容就没有好好读过,以至于在相当长的一段时间里,过得糊里糊涂的,当然,主要的责任在我自己。但是,背了这么大的罪,有点不甘心。恩,得找点理由。我的理由是:正如大部分朋友那样,学c是从谭浩强那本书开始的,单文件的习惯简直是深入人心。在大谈特谈之后。他老人家大概觉得不好意思,书的最后才拿出来亮下,而我这个笨蛋自以为读了那么多,已经大功告成了,也没放在心上,上面的这些废话,只想说明一点。那就是读好书是绝对必要的。

1.3节里,作者以最简单的语言回答了初学者一定会问的笨问题:

第一:很多人都会问。#include<>#include” ”有什么区别?书上的回答很明白,对头文件查找的方式不同而已。可能我们唯一不满意的是。作者没有告诉我们什么是预定义的目录,汗,看来作者还是高估了我们这些可怜的人,所谓预定义的目录就是我们通常说的系统目录。标准库文件所在的地方,再说的直接点。就是你安装编译器所在的那个目录的某个子目录。什么是当前用户目录?别玩我了,你一定知道的。除非你没用过操作系统。

第二:c++c的兼容性是大家都知道的。但是我们会很奇怪的发现当我们根据c++的标准写法写下如下句子时

   include<stdio>

   using namespace std;

编译器很不给面子。作者告诉我们原来c名字和c++名字是不同的。也就是说在名字空间std里根本就没有stdio这个东西。所有的c名字在c++名字中都得加个c前缀,在也证明了我在上篇笔记里说的。一上来就动手上机的一大弊端就是我们根本不知道自己在用什么。出了错当然也就莫名其妙了,

第三:由于c++c的兼容,我们也许会问:我怎么知道那个是c文件,那个是c++文件呢?看扩展名?这是个主意,但是,有个不幸的消息。作者已经多次告诉我们在不同的系统里文件的扩展名是不同的,作者告诉我们一个很好的方法:用宏,c++有个“__cplusplusc有个“__STDC__”这两个名字不会同时存在。ok,这样的话,我们#ifndef或者#ifdef就可以了,另外,作者还告诉我们四个宏,对初学者来说几呼没什么用?呵呵,多懂点也是好的,这也是作者对我们的信任,不像某些教材,,,,唉,不提也罢,什么是初学者的东西。什么不是。谁有这个权力判断呢?除了你自己,教育者的任务该是把完整的东西拿来看,取舍是学生的事情,不是吗?

除了上面这些知识外,作者还告诉我们该养成那些好习惯。比如写头文件时,该写成如下形式:

   #ifndef  FILENAME_H

#define FILENAME_H

//文件主体,

#endif

以便当文件包涵层次多了犯糊涂,另外这里还有个暗示:鼓励写多文件程序,这样可以避免一个文件过长难以读懂,我当年就写过一个长达1100行的文件。修改时,我自己都晕了。还有个好处是,当我们学习I/O时文件操作就成可以理解的东西了,尽管两者关系不大。但是这是一种思维习惯,如果你只写单文件的东西。你怎么理解文件外的操作呢?

还有一种习惯就是注释,我把它并到这里来写,是因为它简单,但是简单并不意味着不重要,相反,它很重要。无论在任何时候我们都不要忘记,人类能成为整个世界的主宰,是因为我们的合作能力超过了任何一种生物(不明生物除外)。而注释正是为你以后的合作提供方便,因为你的设计灵感是很容易忘记的,到时候,连自己都不知道。这段代码干嘛的?

C++ Primer中文版读书笔记

(注意,Lm 表示第 m 行,L-n 表示倒数第 n 行)■导读 p23原文:template T func( T p1, T p2, int p3 ) // ( T p1, T p2, int p3...
  • jaminwm
  • jaminwm
  • 2007年12月25日 20:04
  • 2429

《C++primer(第五版)》学习之路-第十一章:关联容器

【 声明:版权所有,转载请标明出处,请勿用于商业用途。  联系信箱:libin493073668@sina.com】 11.1 使用关联容器 1. 关联容器类型 按关键字有序保...
  • libin1105
  • libin1105
  • 2015年09月26日 12:28
  • 1484

【c++ primer】第九章读书笔记

第九章   内存模型和名称空间
  • fghbnmjkl1
  • fghbnmjkl1
  • 2017年03月08日 08:09
  • 115

C++ primer读书笔记(1)

写在前面的话:
  • u013457107
  • u013457107
  • 2014年05月02日 00:17
  • 458

《C++ Primer》读书笔记第十一章-1-关联容器概述

笔记会持续更新,有错误的地方欢迎指正,谢谢!前言:前面学的都是顺序容器,顺序容器中的元素是按它们在容器中的位置来保存和访问的。接下来这一章学习关联容器:关联容器中的元素是按关键字来保存和访问的。 ...
  • BillCYJ
  • BillCYJ
  • 2017年09月22日 16:47
  • 90

C++ primer plus读书笔记(一)

这一系列的blog主要是对以前学过的C++的特点,以及面向对象的相关内容的总结。 面向对象的三大特征:封装、继承、多态。 访问控制原则: public:使用类对象的程序可以直接访问公有成员。...
  • u012927281
  • u012927281
  • 2016年08月17日 10:57
  • 304

c++ primer 读书笔记十一

3.4迭代器 和指针不一样的是,获取迭代器不是使用取地址符,有迭代器的类型同时返回拥有返回迭代器的成员,比如这些类型都拥有名为begin和end的成员,其中begin成员负责指向第一个元素的迭代器 ...
  • sinat_37339643
  • sinat_37339643
  • 2018年01月26日 15:24
  • 14

【c++ primer读书笔记】【第11章】关联容器

1、关联容器类型 按关键字有序保存元素 map 关联数组:保存关键字-值对应 set 关键字既值,既只保存关键字的容器 multimap 关...
  • ruan875417
  • ruan875417
  • 2015年03月29日 17:00
  • 264

【读书笔记:C++ primer plus 第六版 中文版】第2章:开始学习C++

转载请注明出处: 本章内容包括: 创建C++程序. C++程序的一般格式. #include编译指令. main()函数. 使用cout对象进行输出 在C++程序中加入注释. 何时以及如何使用endl...
  • enyusmile
  • enyusmile
  • 2015年06月21日 10:33
  • 820

C++primer第五版第十一章学习笔记

练习11.1:描述map和vector的不同。 vector这种顺序容器,元素在其中按顺序存储,每个元素都有唯一对应的位置编号,所有操作都是按编号进行的。例如,获取元素,插入删除元素,遍历元素。底层的...
  • sunhero2010
  • sunhero2010
  • 2015年11月14日 09:32
  • 1306
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《c++ primer》读书笔记3
举报原因:
原因补充:

(最多只允许输入30个字)