VS分步调试时为什么进不去自己写的类的公有复制构造函数里面

VS分步调试时为什么进不去自己写的类的公有复制构造函数里面,第1张

构造函数 析构函数

功能 初始化对象 销毁对象

名称 类名 ~类名

调用时间 创建对象时 对象生命期结束时

参数 可有多个 没有

重载性 可重载 只有一个

返回值 无 无

默认性 可产生默认构造函数通常显示定义 可产生默认析构函数通常不显示定义

析构函数没有参数,不能重载,不能有缺省参数,而构造函数有参数,可以重载,可以有缺省参数

构造函数不能声明为虚函数,而析构函数一般都声明为虚析构函数

构造函数只能由系统自动调用,析构函数一般也是由系统自动调用,但也可以通过类的实例对象显示调用以保证实例的释放

构造函数完成对象的数据成员的内存初始化工作。构造函数在初始化类的实例对象时,首先初始化数据成员(初始化顺序和类中数据成员的声明顺序相同),然后执行构造函数体。

析构函数完成对象内存的释放工作,动态申请的内存需要释放。

编程人员没有为类提供构造函数时,编译系统自动提供一个无参的缺省构造函数,一旦编程人员为类提供了任何一个构造函数(包括拷贝构造函数),编译系统在编译时就不会提供无参的缺省构造函数,析构函数也是如此

单继承派生类构造时,首先构造基类,其次是派生类的数据成员的初始化(顺序和派生类数据成员的声明顺序相同),最后执行派生类的构造函数体

多继承派生类构造时,首先构造虚基类,多个虚基类按照他们被继承的顺序依次构造,其次构造一般基类,多个一般基类按照被继承的顺序构造,然后初始化派生类的数据成员,初始化顺序和派生类数据成员的声明顺序相同,最后执行派生类的构造函数体

构造函数需要初始化的数据,不论是否显示出现在构造函数的初始化参数列表中,都会在该处完成初始化,并且初始化顺序和该数据在初始化参数列表中出现的先后顺序无关,都遵循上面的构造顺序。

析构顺序一般和构造顺序相反

当派生类对象创建时,注意调用派生类构造函数之前先调用基类的构造函数,注意派生类构造函数的写法。

普通对象实例在定义时自动调用构造函数完成对象的初始化,当其出了作用域时自动调用析构函数进行所占用空间的释放

指针对象实例在用new分配指针所指内容时自动调用构造函数完成指针所指内存的初始化,当用delete删除该指针时自动调用析构函数进行指针所指内存的释放

VC++调试的时候进入类中的函数:到了 a = b这一行时,按F11,进入执行函数。

vc调试,一般是需要设置一个断点的,譬如1)int i;2)int j;如果在int j处设置了断点,那么当程序运行到int j时,程序停止,这个时候就可以查看程序各种变量或执行状态了,简单的办法就是把鼠标停在要看的变量上面。会有一个个小的d出窗口来显示变量状态。

正常情况下F11确实是单步步入。

你是release版还是debug版?

试试一下:

在函数内下断点。

把反汇编窗口关掉再f11

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12162866.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存