刚在看某牛人的写得LSGE游戏开发库,发现父类里有几个虚函数是在子类中重载后,子类中被重载的虚函数能被父类对象调用(多基础的问题啊),一直都找不出原因,后来终于发现是this的问题。。
给个例子:
#include<stdio.h> class D1 { public: virtual void reder() //虚函数 在D2中被重载 { printf("d1"); } void run() { this->reder(); //this 指针调用reder()函数 } }; class D2:public D1 { public: void reder() { printf("d2"); } }; void main() { D2 a; a.run(); //这里的a是子类D2的对象,所以在调用run()时那个this指 //针指的是D2的对象,所以最终输出的 D2。。 }