您的位置:首页 > 其它

第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数据成员在类的定义体中初始化时,该数据成员仍必须在类的定义体之外进行定义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: