AstaTus
-- 夏天不热。。
posts - 22,comments - 12,trackbacks - 0

        刚在看某牛人的写得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。。   
  
*/


}
  
posted on 2008-08-01 10:40 AstaTus 阅读(147) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理