C++ PRIMER (1、2章)摘录笔记

记录学习之路。C++ primer 的确不是很适合初学者看。因为其编排结构由底层到高。不是很容易理解。这是大三实习的时候,看的。收获挺多。

不到之处,请大家指出。


BLOG 截图


(1)


cerr \ cout \clog 的区别
1、cout输出的信息可以重定向,而cerr只能输出到标准输出(显示器)上。
2、cout是标准输出流,与cerr的区别在于cerr不经过缓冲区,直接向显示器输出信息,而cout中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出.


三者区别:
cout 标准输出流 对应设备为屏幕,也可以被重定向输出到磁盘文件。经过缓冲区,缓冲区满后或遇到endl时向显时器输出。
cin 标准错误流 对应设备为屏幕,不经过缓冲区,直接向屏幕输出有关信息。
clog 标准错误流 对应设备为屏幕。经过缓冲区,缓冲区满后或遇到endl时向显时器输出。




(2)
c++ 每个表达式都会产生一个返回值
while(std::cin>>value)中
cin>>返回左值,while 测试 流的状态;
当读入一个文件结束符或者无效输入时,istream 对象就是无效的了。


(3)
使用命名空间,可以使我们避免无意中使用了库中的名字;
标准库的名字都在std 命名空间中。
std :: cout 是一种作用域操作符的写作形式
(4)
“”和<>的区别:
< >引用的是编译器的类库路径里面的头文件" "引用的是你程序目录的相对路径中的头文件
如果使用" ",它是会先在你项目的当前目录查找是否有对应头文件如果没有,它还是会在对应的引用目录里面查找对应的头文件


是编译器参数所指定的头文件目录,在VC6.0里面,IDE设置是在Tools=〉Options=〉Directories中设置,或者在当前项目的Setting=〉C/C++〉Preprocessor中Additional include directories所设置的路径




(5)typedef 可以用来定义类型的同义词
typedef double wage
typedef wage salary
salary hourly; // doule hourily
(6)枚举
【1】
// input = 0 ; output = 1 ; append = 2
enum open_mode {input , output ,append };
隐式初始化:比前面的+1
显示初始化:枚举类型就是给出的值
// input = 1 ; output = 2 ; append = 2
enum open_mode {input =1, output ,append=2 };
【2】枚举成员是常量,可以直接使用
每个枚举类型都是新的类型,其变量只能使用枚举成员或另一个枚举变量复制
open_mode mode1 = input;
mode1 = mode2;
mode 1 = 1 ;//error


(7)struct关键字是C继承而来的。
和class 的唯一区别是:默认的访问级别不同


(8)头文件
它的全部作用,就是把自己的所有内容直接“粘贴”到相应的 #include 语句处。
这个是由预处理器完成。一般包括,类定义,函数和extern 变量的声明
【1】防止多重编译:
#ifndef  SALESITEM_H //预编译器变量,有两种状态 已定义、未定义
#define SALESITME_H
.............
#endif
【2】extern
基本解释  extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。
1、extern用在变量声明中常常有这样一个作用,你在*.c文件中声明了一个全局的变量,这个全局的变量如果要被引用,就放在*.h中并用extern来声明。
2、 如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。即下述两个函数声明没有明显的区别:extern int f(); 和int f();  当然,这样的用处还是有的,就是在程序中取代include “*.h”来声明函数,在一些复杂的项目中,我比较习惯在所有的函数声明前添加extern修饰。
【编译头文件】在一个工程中,总有那么一堆头文件,是几乎所有 cpp 都必须包含的。那么,可不可以把这些头文件提取出来,只编译一编,然后所有其它 cpp 就都能使用呢?
pch 文件,那就是传说中的“编译之后的预编译头”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值