第12章 类
2009-09-15 12:08
113 查看
把关键字const加在形参表之后,就可以将成员函数声明为常量,const成员不能改变其所操作的对象的数据成员。
如果类是用struct关键字定义的,则在第一个访问标号之前的成员是公有的;
如果类是用class关键字定义的,则这些成员是私有的。
可以声明一个类而不定义它,称为不完全类型。
不完全类型只能用于定义指向该类型的指针及引用,或者用于声明使用该类型作为形参类型或返回类型的函数。
类不能具有自身类型的数据成员。类的数据成员可以是指向自身类型的指针或引用。
需要将一个对象作为整体引用而不是引用对象的一个成员时,使用this,该函数返回对调用该函数的对象的引用。
在普通的非const成员函数中,this的类型是一个指向类类型的const指针。可以改变this所指向的值,但不能改变this所保存的地址。
在const成员函数中,this的类型是一个指向const类类型对象的const指针,既不能改变this所指向的对象,也不能改变this所保存的地址。
const成员函数只能返回*this作为一个const引用。
如果希望类的数据成员(甚至在const成员函数内)可以修改,可以通过将它们声明为mutable来实现。
如果函数在类定义体之外定义,如返回类型使用由类定义的类型,则必须使用完全限定名。
构造函数不能声明为const。
构造函数分两个阶段进行:(1)初始化阶段;(2)普通的计算阶段。
初始化发生在计算阶段开始之前。
没有默认构造函数的类类型的成员,以及const或引用类型的成员,都必须在构造函数初始化列表中进行初始化。
构造函数初始化列表仅指定用于初始化成员的值,并不指定这些初始化执行的次序。成员被初始化的次序就是定义成员的次序。
将构造函数声明为explicit,防止在需要隐式转换的上下文中使用构造函数,explicit只能用于类内部的构造函数声明上。
单形参构造函数应该为explicit。
将一个类设为友元,友元类的所有成员都可以访问授予友元关系的那个类的非公有成员。
static关键字只能用于类定义体内部的声明中,定义不能标识为static。
const static数据成员在类的定义体中初始化时,该数据成员仍必须在类的定义体之外进行定义。
如果类是用struct关键字定义的,则在第一个访问标号之前的成员是公有的;
如果类是用class关键字定义的,则这些成员是私有的。
可以声明一个类而不定义它,称为不完全类型。
不完全类型只能用于定义指向该类型的指针及引用,或者用于声明使用该类型作为形参类型或返回类型的函数。
类不能具有自身类型的数据成员。类的数据成员可以是指向自身类型的指针或引用。
需要将一个对象作为整体引用而不是引用对象的一个成员时,使用this,该函数返回对调用该函数的对象的引用。
在普通的非const成员函数中,this的类型是一个指向类类型的const指针。可以改变this所指向的值,但不能改变this所保存的地址。
在const成员函数中,this的类型是一个指向const类类型对象的const指针,既不能改变this所指向的对象,也不能改变this所保存的地址。
const成员函数只能返回*this作为一个const引用。
如果希望类的数据成员(甚至在const成员函数内)可以修改,可以通过将它们声明为mutable来实现。
如果函数在类定义体之外定义,如返回类型使用由类定义的类型,则必须使用完全限定名。
构造函数不能声明为const。
构造函数分两个阶段进行:(1)初始化阶段;(2)普通的计算阶段。
初始化发生在计算阶段开始之前。
没有默认构造函数的类类型的成员,以及const或引用类型的成员,都必须在构造函数初始化列表中进行初始化。
构造函数初始化列表仅指定用于初始化成员的值,并不指定这些初始化执行的次序。成员被初始化的次序就是定义成员的次序。
将构造函数声明为explicit,防止在需要隐式转换的上下文中使用构造函数,explicit只能用于类内部的构造函数声明上。
单形参构造函数应该为explicit。
将一个类设为友元,友元类的所有成员都可以访问授予友元关系的那个类的非公有成员。
static关键字只能用于类定义体内部的声明中,定义不能标识为static。
const static数据成员在类的定义体中初始化时,该数据成员仍必须在类的定义体之外进行定义。
相关文章推荐
- Head First C# 中文版 第12章 回顾与前瞻 page559
- 第12章 系 统 监 控
- 第12章 操作权限管理配置
- 《iPhone开发基础教程》第12章 轻击、触摸和手势
- 第12章 路由器综合路由配置(Cisco Packet Tracer5.3我做不行)
- 第12章 事务和锁
- 第12章,Cisco Packet Tracer系列之--路由器综合路由配置
- C++ Primer 读书笔记——第12章 类
- 第12章 事件 (五)
- 《算法导论》第12章 二叉查找树 (1)遍历
- 《算法导论》第12章 二叉查找树 (3)基数树
- 第12章Java流与文件操作的总结
- 算法导论 第12章 二叉查找树
- LDD3读书笔记(第12章 块设备驱动程序)
- Squid中文权威指南第12章-验证配置
- 第12章 管理和维护数据完整性
- [C/C++] 第12章 类 primer
- 数论概论笔记 第12章 素数
- C++编程思想----第12章、运算符重载
- [bbk5381] 第94集 -第12章 -数据移植 00