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");
}
准确说是指向基类和派生类实例化的对象,严谨一些。
展开
 我来答
百度网友57a2c15d6
2014-06-04 · TA获得超过1850个赞
知道大有可为答主
回答量:2135
采纳率:0%
帮助的人:1896万
展开全部
首先纠正一点,this指针是不存在属于哪个类的说法的,this一个是编译器保留的静态指针,指向当前操作的对象

第二你的代码有问题,从头到尾就没有出现过真正的对象,只有一个基类的指针,此时执行根本不存在派生类的对象,编译器只能从基类寻找。 还有貌似你的编译器比较宽松啊,我用g++根本不能编译
追问
那我再琢磨琢磨,第一点我已经自行纠正了,编译器我用的VS2013,感谢,过一会没有更好回答就采纳你了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式