MFC中CString赋值出错

MFC中CString赋值出错,第1张

不是不能赋值,这讲起来内容就多了,涉及到C++底层的一些知识。

你现在没慧这种用法是把struct ABC当数隐做一种数据结构来用,当然针对struck结构

ABC *p=(ABC*)malloc(sizeof(ABC))

p->str=s

这种用法是无可厚非的,毛病出在你在这个struck里定义了一个类对象CString,

在C++有关构造函数的知识里枯毕答,一个类A里如果包含有B类的对象,那么在这个A类定义对象时,编译器会在A类的构造函数里调用B的构造函数。

好了,矛盾出来了,struct ABC你是当结构体用的,没有所谓的构造函数,那么结构体里的str就没被构造,所以就会出现很多问题,具体出在哪我也不知道,那得去看CString源码。

由此,有二种改法,一个是把malloc改成new,一个是把CString改成内置类型,比如说char

你这样森握橘分配是不行的此团, 你用的是c++就得入乡随俗, 用new

你这样只是分个地方给人家,可是CString的构造函数还皮凯没调用呢, 构造函数成功调用之后才能确保对象是可用的


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

原文地址: http://outofmemory.cn/yw/12428155.html

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

发表评论

登录后才能评论

评论列表(0条)

保存