C++父子类中this指针指向问题。
看了孙鑫老师的C++教程视频,里面提到CWinApp构造函数中的this指针是指向派生类的,我自己尝试写了一段代码测试,结果是指向基类,如果将基类的output()函数写...
看了孙鑫老师的C++教程视频,里面提到CWinApp构造函数中的this指针是指向派生类的,我自己尝试写了一段代码测试,结果是指向基类,如果将基类的output()函数写成虚函数,输出结果的确是指向派生类,但这只能说明C++的多态性,并不能说明基类中this指向派生类啊,费解。
#include <iostream>;
using namespace std;
class Father;
Father * p;
class Father
{
public:
Father()
{
p = this;
}
void output()
{
cout << "this指向基类" << endl;
}
};
class Son : public Father
{
public:
void output()
{
cout << "this指向派生类" << endl;
}
};
void main()
{
p->output();
system("pause");
}
准确说是指向基类和派生类实例化的对象,严谨一些。 展开
#include <iostream>;
using namespace std;
class Father;
Father * p;
class Father
{
public:
Father()
{
p = this;
}
void output()
{
cout << "this指向基类" << endl;
}
};
class Son : public Father
{
public:
void output()
{
cout << "this指向派生类" << endl;
}
};
void main()
{
p->output();
system("pause");
}
准确说是指向基类和派生类实例化的对象,严谨一些。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询