一,this指针
this指针不是对象的一部分,this指针所占的内存大小是不会反应在sizeof操作符上的,this指针的类型取决与使用this指针的成员函数类型以及对象类型
也是一个const指针,它的值是不能被修改的,它指向当前对象,通过它可以访问当前对象的所有成员;
this只能用在类的内部,但只有在对象被创建以后才会给this赋值,并且这个赋值的过程是编译器自动完成的,用户不能显式赋值。
通过this可以访问类的所有成员,包括private,protected,public属性的。this是一个指针,要用->来来访问成员变量或成员函数
this到底是什么?this实际上成员函数的一个形参,在调用成员函数时将对象的地址作为实参传递给this,不过this这个形参时隐式的,它并不出现在代码中,而是在编译阶段由编译器默认地将它添加到参数列表中。同时成员函数和成员变量关联的桥梁。
注意:友元函数没有this指针,因为友元不是类的成员,只有成员函数才有this指针;静态成员函数没有this指针。
二,对象数组
1 class M 2 { 3 public: 4 M(int i,int j) 5 { 6 m = i; n = j; cout << "Constructor Called!" << endl; 7 } 8 M() { m = n = 0; cout << "Default Constructor Called!" << endl; } 9 10 ~M() { cout << "Destructor Called!" << m << "," << n << endl; } 11 int Getm() { return m; } 12 int Getn() { return n; } 13 14 private: 15 int m, n; 16 }; 17 M mm1[2]; 22 int main() { 23 M mm2[4] = { M(2,3),M(5,6),M(7,8),M(2,5) }; 24 M a = M(10,