子类继承父类后this指针的问题。

在程序中创建一个子类对象。创建子类对象会调用子类的构造函数,而调用子类的构造函数时会先调用父类的构造函数,那么此时父类构造函数中的this指针指向的是父类对象还是子类对象... 在程序中创建一个子类对象。创建子类对象会调用子类的构造函数,而调用子类的构造函数时会先调用父类的构造函数,那么此时父类构造函数中的this指针指向的是父类对象还是子类对象? 展开
 我来答
娜莉China
推荐于2018-04-23 · 知道合伙人教育行家
娜莉China
知道合伙人教育行家
采纳数:15252 获赞数:207505
没有

向TA提问 私信TA
展开全部
 “this”,总是本类类型的指针,这个是铁定不变的。你说的这种情况时,此时父类构造函数this指针(父类类型的指针)指向子类对象中的父类部分(意思就是,显示使用this指针只能访问子类中继承自父类的成员)。
  构造子类对象,得先构造子类中的父类部分。所有先调用父类构造函数,即(且只能)通过父类构造函数构造子类对象中的父类成分。
bladeLd
2013-01-22 · TA获得超过110个赞
知道答主
回答量:123
采纳率:100%
帮助的人:71.9万
展开全部
  “this”,总是本类类型的指针,这个是铁定不变的。你说的这种情况时,此时父类构造函数this指针(父类类型的指针)指向子类对象中的父类部分(意思就是,显示使用this指针只能访问子类中继承自父类的成员)。
  构造子类对象,得先构造子类中的父类部分。所有先调用父类构造函数,即(且只能)通过父类构造函数构造子类对象中的父类成分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine雪瑞
2015-10-10 · 知道合伙人教育行家
shine雪瑞
知道合伙人教育行家
采纳数:140 获赞数:26667
学生

向TA提问 私信TA
展开全部
执行父类构造函数时this指针为父类指针类型,而执行子类构造函数时this指针类型又变为子类指针类型了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Bk0X
2013-01-20 · TA获得超过9413个赞
知道小有建树答主
回答量:1217
采纳率:60%
帮助的人:656万
展开全部
父类对象.

这个问题 我用多重继承 实验过.
struct T1{
int m;
T1(){ cout << "T1 " << (int)this << endl; }
};
struct T2{
int m;
T2(){ cout << "T2 " << (int)this << endl; }
};
struct T3: public T1, public T2{
int m;
T3(){ cout << "T3 " << (int)this << endl; }
};

int main()
{
T3 t;
system("pause");
return 0;
}

输出结果可以发现, 父类T2和this和子类T3的不同.
可见, 父类的this只是自己的地址.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亚马逊选品管家
2013-01-20 · TA获得超过643个赞
知道小有建树答主
回答量:805
采纳率:100%
帮助的人:276万
展开全部
当然是父类的。怎么可能是子类的,那不乱套了。
你可以看看c++对象模型这本书。很经典。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式