谈谈CONST:
1、用在成员函数后,const只能用于类成员函数,不可用于全局函数。作用是:保证不改变类的成员变量。同时注意:常量对象只能调用常量成员函数,不可调用非常量函数。
2、const是属于函数签名的一部分。当成员函数的const和non-const版本同时存在,const object只能调用const版本,non-const只能调用non-const版本
关于THIS:
1、类成员函数都有一个隐藏的参数:this指针。哪个对象调用这个函数,this指针就指向哪个对象。通过这一技术可以在子类调用父类的方法中调用子类独有的虚函数。
动态绑定(dynamic binding):对象指针通过虚指针找到虚表,从虚表中查找对应的虚函数地址进行调用。
其中(*(p->vptr)[n])(p)是一个函数指针。参数是P。P是指向一个对象的指针(可使用this获取)。这段代码的意思是:从对象指针p获取虚函数表的虚指针vptr,vptr获取虚表中第n个虚函数的地址,将地址转换为指针形式,参数是对象指针p。