- 重要的面向对象知识汇编
- const: const object 与non-const object;const merber funtion与non-const merber function.第一:const object与non-const object 都能调用const member function. non-const object 可以调用non-const member function.**但是const object不能调用non-const member function **,【注意:当成员函数的const版本与non-const版本同时存在的时候,const object只会调用const 版本,non-const-object只能调用non-const版本】所以我们要注意成员函数是否该加const。
- 我们可以重载new,delete.new[],delete[],new(),delete(),以方便我们自己操作内存
- 动态绑定:条件:用指针调用虚函数,同时满足up-cast(就是父类的指针指向子类的对象A->B->C A*=new C).本质:用虚表与虚指针实现的。当你创建了一个类的对象,除了这个对象本身带的数据,同时还包含了一个指针指向虚表。这个指针称为虚指针。虚表里面就有每个类的所含有的函数的地址。我们就可以通过虚表来访问每个类的函数。当我们把成员函数变为虚函数的时候,如果派生类没有重写,那么传入虚表的地址将是基类该虚函数的地址,如果重写了,那么传入的就是,重写函数的地址。调用重写函数的过程为( * p->vptr[n])§ ;当我们通过派生类对象调用函数的时候,我们会将该对象的this指针传入其中当做参数。就可以上述过程(* this->vptr[n])(this),这就会通过虚表,调用子类的虚函数。
- reference通常用来对于参数类型与返回类型的描述,而不用作声明变量。
|