C++拾遗(八)类——概念、定义与实现
Class与Struct
区别在于class默认访问类型是private,struct默认访问类型是public。
另外在使用习惯上,struct只用来表示纯粹的数据对象或没有私有部分的类。
类中的内联函数
- 定义在类声明中的函数自动成为内联函数。
- 在类实现时使用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) 收藏 举报
浙公网安备 33010602011771号