【C/C++】【类和对象】类中常用的关键字总结
类中实现成员函数(inline)
类内的成员函数实现其实也叫类内的成员函数定义,这种直接在类的定义中实现的成员函数,会被当做inline内联函数来处理。
成员函数末尾的const
-
含义:
const: 常量,在成员函数的后面增加一个const,不但要在成员函数声明中增加const,也要在成员函数定义中增加const。 -
作用:
告诉系统,这个成员函数,不会修改对象里任何成员变量的值。函数后边加一个const后缀的成员函数 “常量成员函数”。 -
注意:
- const成员函数,不管是不是const对象都可以调用const成员函数,而非const成员函数,不能够被const对象调用,只能被非const成员函数调用
- const不能放在普通函数末尾
mutable
const的反义词,mutable的引入正好是为了突破const的限制。用mutable修饰成员变量,一个成员变量一旦被mutable修饰了,那么什么成员函数都可以修改这个成员变量;
this
this返回自身对象的引用。如何理解this,调用成员函数时候,编译器负责把对象的地址传递给成员函数中隐藏的this形参。在系统角度看来,任何对类成员的直接访问被看作this访问;
- this指针只能在成员函数中使用,全局函数,静态函数都不能使用this指针
- 在普通成员函数中,this是指向一个非const对象的指针常量
- 在const成员函数中,this指针是指向const对象的指针常量
- 直接使用成员变量相当于隐式使用this 当形参名跟成员变量名一样时,用this来做区分
this 指针的作用域是类的内部,就是当类的非静态成员函数访问类的非静态成员时,编译器会自动地将对象本身的地址作为隐含参数传入相应的成员函数,它是作为非静态成员函数的隐含形参,之后通过该 this 指针对非静态成员变量进行更改的。由于每个对象是共享成员方法和静态成员变量,但独自都有一份非静态成员的拷贝,因此 this 是必需的,就相当于我们给每个对象都有一个唯一的标识。
this 指针的作用是指向一个对象,因此它的指向不能修改,因此它是一个指针常量,T *const this
,对于常对象,this 指针的类型为 const T *const this
,只能调用常成员函数,不能调用普通成员方法的原因就在这里,参数不匹配,
this 指针的作用:
- 非静态成员函数返回类对象本身时,需要使用到 this 指针
- 非静态成员函数的形参和类的成员变量名称相同时,需要使用到 this 指针
静态成员static
属于整个类的成员变量(static成员变量);
- 特点: 不属于某个对象,属于整个类,我们一旦在某个对象中修改了这个成员变量的值,在其他对象中直接能够看到修改的结果。 这种成员变量只有一种副本,对于这种成员变量的引用,我们用的是实名::成员变量名
- 成员函数前面也可以添加static构成静态成员函数,属于整个类的成员函数,调用时: 类名::成员函数名(...)
- 如何定义静态成员变量(分配内存),我们一般会在某一个.cpp源文件的开头来定义这个静态成员变量,这样我们就能保证在调用任何函数之前这个静态成员变量已经被成功初始化
知识的价值不在于占有,而在于使用