C++中的类成员函数

<分析>:将自己觉得类成员函数中需要注意的地方总结成以下几点:

(1)编译器隐式的将类内定义的成员函数当作内联函数;

(2)每个成员函数都有一个额外的、隐含的this指针,在调用成员函数时,参数this初始化为调用函数的对象的地址,在成员函数形参表中显式包含this指针是非法的,但是在函数体中可以显式包含。

(3)常成员函数实质就是this指针是const的。所以const对象只能调用其const成员函 数;非const对象可以调用其const成员函数和非const成员函数。

(4)const成员函数在定义和声明的时候都要指定const关键字。

(5)const成员函数是指不可以更改对象内任何non-static成员变量,但有个特例可以更 改mutable修饰的非const成员变量,也可以修改静态成员变量。

(6)在类外定义成员函数的返回类型与函数声明必须完全一致;

(7)构造函数与析构函数是特殊的类的成员函数;

(8)避免返回handle(包括引用,指针,迭代器)指向对象内部的类对象,因为这样会破坏封装性,比如一个矩形的类A中包含了带有point类B的成员对象b(handle),b   是私有,但是如果你在类A中有个成员函数返回b的引用,那么就可以修改b,造成b 不封装,b的寿命比A对象还要长的假象,同时还可能造成悬垂handle,因为当我们删 除对象a时,那么返回的handle就悬垂了。(有些情况下必须得用,比如[]操作符的  返回)

猜你喜欢

转载自blog.csdn.net/zdplife/article/details/50935320