7类

2017-10-26  本文已影响0人  龟龟51

7类

This是一个常量的指针,把const关键字放在成员函数的参数列表之后,此时,紧跟在参数列表之后const表示this是一个指向常量的指针。

如果非成员函数是类接口的组成部分,则这些函数的声明应该与类在同一个文件夹内。

构造函数的名字与类名相同,和其他函数不一样的是,构造函数没有返回类型,除此之外类似于其他的函数,构造函数也有一个(可能为空的)参数列表和一个(可能为空的)函数体。

编译器会合成默认的拷贝、赋值和析构函数。

访问说明符:public private

Class在访问说明符定义之前的成员为private的,struct则是public。

友元:其他类或者函数访问它的非公有成员。前加friend。

友元的声明仅仅指定了访问的权限,不是一个通常意义上的函数声明。类的用户还要在友元声明之外在对函数进行声明。

7.3类的其他特性

可变数据成员,通过mutable关键字,可以修改类的某个数据成员,甚至是const成员函数。

友元函数能定义在类的内部,这样的函数是隐式内联的。

不完全类型,只声明无定义的类。

友元在类内部定义,外部也必须进行声明,类的用户才能使用。

编译器处理完类中的全部声明后才会处理成员函数的定义。

类型名要特殊处理,类外面用typedef定义一种数据类型,类的内部不能在定义这个名字了。

函数名字查找

先在成员函数内->类->类外面

构造函数初始值列表

类内成员是const或者是引用的话,必须将其初始化,类似的,当成员属于某种类类型且该类没有定义默认构造函数时,也必须将这个成员初始化。

如果类内一个成员是用另一个成员初始化的,这个两个成员的初始化顺序很关键。

委托构造函数

默认构造函数的作用

警惕这种错误


隐式的类类型转换

Explicit抑制隐式转换,只能显示调用。

7.5.5聚合类

7.5.6字面值常量类

7.6类的静态成员

静态数据成员的类型可以是常量、引用、指针、类类型。

静态成员函数也不与任何对象绑定在一起,它们不包含this指针。静态成员函数不能声明成const的,也不能在static函数体内用this指针。

成员函数不用通过作用域运算符就能直接使用静态成员;

上一篇下一篇

猜你喜欢

热点阅读