C++拾遗(八)类——概念、定义与实现

Class与Struct

区别在于class默认访问类型是private,struct默认访问类型是public。

另外在使用习惯上,struct只用来表示纯粹的数据对象或没有私有部分的类。

类中的内联函数

  1. 定义在类声明中的函数自动成为内联函数。
  2. 在类实现时使用inline限定符也是内联函数。

这两者是等价的。

类的实例

每个对象有自己的存储空间储存各自的内部变量和类成员,但是同一个类的所有对象共用一组类方法。

类作用域

声明符号常量时使用static或者enum。

使用 enum 时不会创建类数据成员,只是在作用域为这个类的代码中使用值来替换符号。

使用 static 时,会存储到静态成员区域,不会存储到对象中。

类中的const

1.const修饰的成员变量初始化只能用初始化列表。

2.const修饰的成员函数不能修改成员变量的值,因为在X类的const成员函数中,this指针的类型为:const X* const。如果有普通成员函数与const成员函数同名(这样构成重载),则默认调用普通成员函数。

如果这时要使用const成员函数,需要在实例化的时候实例化一个常对象,如:const ClassName c。

3. 常对象只能调用常成员函数,普通对象可以调用全部成员函数。

this指针

1. 当对一个对象调用成员函数时,编译器先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用this指针。

2. 当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针,该参数的位置在其他参数前。 

3. 在C++中,this指针被隐含地声明为: X *const this,这意味着不能给this 指针赋值;在X类的const成员函数中,this指针的类型为:const X* const, 这说明this指针所指向的这种对象是不可修改的。

posted on 2016-05-06 09:45  DeathKnightH  阅读(186)  评论(0)    收藏  举报

导航