您好、欢迎来到现金彩票网!
当前位置:秒速时时彩 > 算术上溢 >

【疑问】C++函数调用后对结构体的操作还会复位吗?

发布时间:2019-06-03 23:16 来源:未知 编辑:admin

  然而当我返回到更上一级的函数C中,试图访问通过A生成并赋值的结构体时,结构体中只有直接以C传给A的参数直接赋值的成员变量有正确的值,其余通过调用函数B赋值的成员变量全部被复位了——就好像B函数对他们干的事情在A函数结束时被消除了一样,

  C函数传递了一些参数给A函数,A函数以new的方式创建了一个新的结构体对象O,将这些参数赋值给了O的一部分成员变量的同时,调用结构体对象O的成员函数B,B函数利用最初从C传递给A的参数,进行了计算并为O的另一部分成员变量赋值.

  为什么有这种怀疑,因为我试着在Rand()或GenerateAppearanceSS()两函数中加入直接对对象成员赋值的语句,但是这样被赋值的成员变量到了Main函数中查询时,也跟没有赋值时一样.

  单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回值返回”或“参加各种运算”或“退出作用域”的语句对应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”对应的C/C++源代码处。

  VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。

  单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回值返回”或“参加各种运算”或“退出作用域”的语句对应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”对应的C/C++源代码处。

  VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。

http://allpennsylvania.com/suanshushangyi/91.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有