注册 登录
编程论坛 VC++/MFC

列表控件中父类子类的变量继承,请求帮助解答

菜鸟一百天 发布于 2016-11-12 20:35, 1994 次点击
今天在更新两个列表框之间的信息时,由于其中一个列表框是从我自己编写的另外一个列表框继承的。我在调用子类对象中父类子对象公有卡信息成员变量进行修改时,发现我在父类对象中的卡信息中的对应卡的信息也更改了
如附件1图:
 
上边的列表框为父类对象、下边的列表框为子类对象,继承自上边的父类。原则上,我修改下面中的数据,对应上面列表框中的数据也会跟着变化,这实现了,但就是实现的机制我不太清楚。
开始我先删除了下面列表框中的xqs三个字符,如附件2图所示:
 
然后当光标离开下面列表框中编辑框时,即编辑框失去焦点时,响应消息,在函数中更新下面列表框的显示,如附件3图:
 
这是下面对话框的显示已经进行了更新,然后我又在主对话框中调用更新函数,更新上面对话框的显示,下面进入更新函数,如附件4图所示:
 
首先获取子类对象,即下面的编辑框中已经改变的对象(这个对象是父类子对象)。如附件5图为其结果:
 
可以看到此时,子类对象的该变量(父类子对象)的字符串中没有了xqs三个字符。注意这时仍然没有更新父类中同样对象的字符串理论上应该还有xqs三个字符。但结果如附件6图:
 
如红笔所示,父类对象的该变量也进行了更新,尽管我的目的正是让他更新,但这个中间为什么会自己更新我很困惑,请求解答?
(没法插入图片,我把图片按先后顺序上传了)
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录

1 回复
#2
菜鸟一百天2016-11-12 21:53
问题应该是,我在两个类的变量中使用了同一个指针,就是两个变量的地址相同,所以在一个里面修改,另外一个也会改变,重新创建了一个变量就没问题了!
1