如果我们定义一个派生类的对象,那么基类的this和派生类的this是不是都指向这个派生类对象呢?
为回答这个问题,我编写了如下代码:
- #include <tchar.h>
-
#include <iostream>
-
using namespace std;
-
-
class Person
-
{
-
public:
-
void PersonPrint()
-
{
-
cout << _T("基类的Print函数被调用") << endl;
-
cout << sizeof(*this) << endl;
-
}
-
-
private:
-
double m_dWeight;
-
};
-
-
class Men: public Person
-
{
-
public:
-
void MenPrint()
-
{
-
cout << _T("派生类的Print函数被调用") << endl;
-
cout << sizeof(*this) << endl;
-
}
-
-
private:
-
double m_dHeight;
-
};
-
-
int _tmain(int argc, TCHAR argv[], TCHAR envp[])
-
{
-
Men Mike;
-
Mike.PersonPrint();
-
Mike.MenPrint();
-
return 0;
-
}
上述代码的执行结果如下:
从结果中我们可以推断出:
基类中的this指向的是派生类对象中的基类部分;
派生类中的this指向的是派生类对象。
阅读(489) | 评论(0) | 转发(0) |