【转载,自己做了些批注】重学C++ Primer后一些基本知识点注意点总结

原文:http://bbs.csdn.net/topics/391834059

    对于熟练C或者C++的人来说,熟读和熟记并理解下面的内容是有很大的帮助的,要在实践中好好去体会和实现下面的要点。以此作为笔记,不厌其烦的去理解,好好学习。
- 内置类型的存储空间依机器而定,当规定了每个算术类型的最小存储空间
- 字符串字面值区分宽字符串是以宽空字符结束的
- 使用了未定义行为的程序都是错误的,即时程序能够运行,也只是巧合。(提示:反斜杠)
- 变量的初始化形式包括:复制初始化(等号)和直接初始化(括号),对类类型的对象来说,有些初始化仅能用直接初始化完成。
- 初始化、赋值、定义要理解
- 内置类型变量是否自动初始化取决于变量定义的位置
- 类类型变量的初始化:如果定义某个类的变量时没有提供初始化式,这个类也可以定义初始化时的操作。它是通过定义一个特殊的构造函数即默认构造函数来实现的;
- 有些类类型没有默认构造函数,那就必须提供显示的初始化式
- 在一个程序中,变量有且仅有一个定义
- 定义也是声明
- extern 声明不是定义,也不分配空间;只有当声明也是定义时,声明才可以初始化式,如果声明有初始化式,那么它可被当作是定义,即使声明标记为extern,不过只有当extern 声明位于函数外部时,才可以含有初始化式;
- C++中,大多数作用域是通过用花括号来界定的
- 全局作用域、局部作用域、语句作用域、类作用域、命名空间作用域
- 通常把一个对象定义在它首次使用的地方是一个很好的办法
- const 对象:常量在定义后就不能被修改,所以定义时必须初始化(const_cast)
- 与其他变量不同,除非特别说明,在全局作用域声明的const 变量是定义该对象的文件的局部变量。此变量只存在被定义的那个文件中,不能被其他的文件访问
- 但是通过指定const变量为extern,就可以在整个程序中访问const对象(非const对象默认为extern)
- 引用是一种复合类型,通过在变量名前添加“&”符号来定义。
- 引用只能绑定一次对象;引用不能为数组;
- const 引用是指向const对象的引用;const 引用可以绑定到不同但相关类型的对象或绑定到右值(原因:中间变量);
- 非const引用只能绑定到与该引用同类型的对象;
- 枚举成员值可以不是唯一的,即可以有同样的值
- 不能改变枚举成员的值,枚举成员本身就是一个常量表达式,因此也可以用于需要常量表达式的地方
- 枚举类型的对象的初始化或赋值,只能通过其枚举成员或同一枚举类型的其他对象来进行,如枚举变量Week week = Mon;
- 定义变量和定义数据成员存在非常重要的区别:一般不能把类成员的初始化作为其定义的一部分。当定义数据成员时,只能指定该数据成员的名字和类型。类不是在类定义里定义数据成员时初始化数据成员,而是通过称为构造函数的特殊成员函数控制初始化。
- 用class和struct关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为public,而class的成员为private

struct s = {1, "2", 3.f} 这是 struct 的专属,class 不能这么执行初始化!
- struct 定义变量的时候不用像C语言那样要加上struct关键词了(这个挺好,也就是说,struct 前面加 typedef 是多余的了 - -、)
- 编译器把目标文件链接在一起形成可执行文件(会将静态库中用到的目标文件抽取出来合并到可执行文件中去!)
- 头文件包含在多个源文件中,所以不应该含有变量或函数定义,区别类中的数据成员的定义(不是很能理解)
- 当在头文件中定义const变量后,每个包含该头文件的源文件都有了自己的const变量,其名称和值都一样,相当与没包含一次就定义了同名同值的const变量,且const变量如果不加显示的extern,只能在本文件中使用,所以不会发生重定义错误,不同于普通变量,但是加了extern的话如果多次包含就是出现重定义的错误
- 避免多重包含:预处理变量。使用预处理变量可以防止多次包含同一个头文件。机制就是重包含了,通过预处理变量只对#ifndef后面的内容处理一次
更多的注意可以在我的博客中(帖子里界面显示不怎么美观):http://blog.csdn.net/freeape/article/details/48554011

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值