您的位置:首页 > 编程语言 > PHP开发

?第三讲中孙老师提到的this指针到底指向基类对象还是派生类对象?

2006-07-25 09:37 966 查看
在第三讲中,孙老师说基类中使用的this指针在派生类生成的对象当中,是指向派生类对象的,可是我按他说的方法去测试一下,结果是指向基类对象,这是为什么?

 

 

 CTestAPP 由 CWinAPP 派生而来

 
CWinApp::CWinApp(LPCTSTR lpszAppName) //带参数
{
...........................
 pThreadState->m_pCurrentWinThread = this; 
 //注意,这个this指针指向那个对象?是CWinAPP还是CTestAPP
 //孙老师说是指向派生类CTestAPP的对象,但是我的试验中却是指向基类对象啊
 ASSERT(AfxGetThread() == this);
.............................
}

我做的试验如下:

 

class Point
{
public:
 void output()
 {
  cout<<"调用了基类的output()函数.";
 }
 
 void cjp()
 { 
  this->output();
 }
};

class test:public Point
{
public:
 void output ()
 {
  cout<<"调用了派生类的output函数。";
 }
};

void main()
{
 test tt;
 tt.cjp();
}//endof main()
 

按孙老师的意思应该输出:“调用了派生类的output函数”,但是结果是 "调用了基类的output()函数."
说明this指针指向的是基类的对象,这与孙老师的意思相反,

我的问题出在那里?   是我对他的意思理解有误?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  output class 测试