博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于虚函数,构造函数,非构造函数之间的交叉调用
阅读量:4977 次
发布时间:2019-06-12

本文共 404 字,大约阅读时间需要 1 分钟。

首先,上代码(还是代码引发的血案)

class A{public:	A(){		this;		print();	}	virtual void print(){		this;		cout<<"A"<

  

B b(3);

b.think();

 

输出的结果:

A

B

为什么会出现这种情况呢?

 

因为子类并不继承父类的构造函数和析构函数!!!

相反会继承成员函数和虚函数,

在执行子类的构造函数时,会调用父类的构造函数,记住,是调用,也就是A::A(),这样一来,是进入了A类的作用域,this指针也就是A类对象的this指针

而执行成员函数时,因为继承的关系,所以一直处于子类的作用域,

 

记住,只要是子类继承父类,除了构造函数和析构函数之外,根本不存在父类的作用域,this指针全部都是子类对象的指针!!!!

转载于:https://www.cnblogs.com/YTYMblog/p/6444842.html

你可能感兴趣的文章
Js_图片切换左右点击
查看>>
索引调优
查看>>
SSL-ZYC POJ 2560 Freckles
查看>>
vue项目整理
查看>>
【链表】Sort List(归并排序)
查看>>
multiprocess模块
查看>>
TextBox获得焦点,选中文本
查看>>
洛谷P2704 炮兵阵地
查看>>
POJ 1459 Power Network(最大流入门)
查看>>
UVA1204 Fun Game
查看>>
libpointmatcher的filter
查看>>
(线段树) Count the Colors --ZOJ --1610
查看>>
recvmsg和sendmsg函数
查看>>
深度图像检测算法总结与对比(4)
查看>>
Android SDK无法更新问题解决(转)
查看>>
C项目实践--贪吃蛇(1)
查看>>
在生产环境使用Docker部署应用
查看>>
tween.js
查看>>
bzoj 5287: [Hnoi2018]毒瘤
查看>>
AtCoder Grand Contest 006 F - Blackout
查看>>