明天把“类”这一章的笔记写完,就跟我的学习进度同步了。最近状态很差,上课都是在画重点,没办法看书熬课上时间了
进度也变慢了,原先一天20页,这星期总共看了20页,看完16章就可以了。下星期开始复习,计划一周更新一章。25号结束整个学习笔记。
谢谢大家的关注。
程序代码:
进度也变慢了,原先一天20页,这星期总共看了20页,看完16章就可以了。下星期开始复习,计划一周更新一章。25号结束整个学习笔记。谢谢大家的关注。
程序代码:2011.6.1
第12章 类
成员可以是数据、函数或类型别名。
构造函数初始化列表跟在构造函数的形参表之后,并以冒号开头。
在类内部,声明成员函数是必需的,而定义成员函数则是可选的。
类内部定义的函数默认为inline。
成员函数有一个附加的隐含实参——this指针。
const必须同时出现在声明和定义中。
类背后蕴含的基本思想是数据抽象和封装。
封装是一项将低层次的元素组合起来形成新的、高层次实体的技术。
一个访问标号可以出现的次数通常是没有限制的。
数据抽象和封装的两个重要有点:
避免类内部出现无意的、可能破坏对象状态的用户级错误。
随时间推移可以根据需求改变或缺陷报告来完善类实现,而无须改变用户级代码。
类可以定义自己的局部类型名字,将这个类型设为public,就允许用户使用这个名字。
成员函数只能重载本类的其他成员函数。
不在类定义体内定义的inline成员函数,其定义通常应放在有类定义的同一头文件中。
对于不完全类型,不能定义该类型的对象,只能用于定义指向该类型的指针及引用,或者用于声明使用该类型作为形参类型或返回类型的函数。
定义类型时不进行存储分配。
因为在类定义之后可以接一个对象定义列表。定义必须以分号结束。
成员函数不能定义this形参。
当我们需要将一个对象作为整体引用而不是引用对象的一个成员时,需要显式引用this。
const成员函数只能返回*this作为一个const引用。
可变数据成员永远都不能为const,const成员函数可以改变mutable成员。
定义类型的成员,如Screen::index(称为完全限定名),使用作用域操作符来访问。
返回类型出现在成员名字前面,如果返回类型使用由类定义的类型,则必须使用完全限定名。
在C++程序中,所有名字必须在使用之前声明。
如果类作用域中使用的名字不能确定为类成员名,则在包含该类或成员定义的作用域中查找,以便找到该名字的声明。
一旦一个名字被用作类姓名,该名字就不能被重复定义。
尽管类的成员被屏蔽了,但仍然可以通过用类名来限定成员名或显式使用this指针来使用它。
尽管全局对象被屏蔽了,但通过用全局作用域确定操作符(::)来限定名字,仍然可以访问。








