类和数据抽象

来源:互联网 发布:第二基地知乎 编辑:程序博客网 时间:2024/05/29 16:57
第12章 类
12.2 隐含的this指针 - 
非const成员函数 - this的类型是一个指向类类型的const指针,可以改变this所指向的值,但不能改变this所保存的地址
const成员函数 - this的类型是一个指向const类类型的const指针,既不能改变this所指向的值,也不能改变this所保存的地址




基于const的重载
任意成员函数,包括const成员函数,都可以改变可变数据成员(mutable)的值。




12.4.4 - 隐式类-类型转换(针对单形参的构造函数)
1.抑制由构造函数定义的隐式转换-将构造函数声明为explicit
2.为转换显式的使用构造函数




12.5 - 友元:允许一个类将对其非公有成员的访问授权予指定的函数或类




12.6 - static类成员
非static数据成员存在于类类型的每个对象中;static数据成员独立于该类的任意对象而存在;每个static数据成员是与类关联的对象,并不与该类的对象相关联。




【static成员函数】
static成员函数可以在类定义体内部或外部定义,在外部定义时无需重复指定static。




【static数据成员】
普通数据成员:在类定义体内部定义,不能在类定义体中初始化,而是通过构造函数初始化。
static数据成员:必须在类定义体外部定义,并且在定义时初始化。

整型const static数据成员:必须在类定义体外部定义,但可以不必在定义时初始化,可以在类定义体中初始化。


第13章 复制控制

复制构造函数:具有单个形参,该形参(常用const修饰)是对该类类型的引用。

析构函数:不管类是否定义了自己的析构函数,编译器都将自动执行类中非static数据成员的析构函数。

赋值操作符:可以通过指定不同类型的右操作数而重载。

复制构造函数、赋值操作符和析构函数总称为复制控制。编译器自动实现这些操作,但类也可以定义自己的版本。


0 0
原创粉丝点击