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

在第三讲中,孙老师说基类中使用的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指针指向的是基类的对象,这与孙老师的意思相反,

我的问题出在那里?   是我对他的意思理解有误?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值