关于和智能指针的兼容、内部类拷贝构造以及赋值运算的问题

0

EasyX库中的多个类的对象,如LINESTYLE、FILLSTYLE、IMAGE等,当使用make_shared创建指向它们的智能指针时,智能指针无法指向该对象本身的地址,反而指向了未知的内存区域,导致通过智能指针对该对象进行读的时候读取到错误数据,写的时候直接触发”读写访问权限冲突“的异常。

经过进一步测试,发现这些类的拷贝构造和赋值运算符存在重大问题,当通过拷贝构造和赋值运算给另一个对象赋值的时候数据会全部丢失(即全部为0)——当然,这还有别于上述智能指针的问题,通过make_shared创建的智能指针会直接指向未知的内存区域。

这种问题是匪夷所思的,因为正常来讲,未重载的拷贝构造和赋值运算只会因为浅拷贝而对指针成员处理不当,非指针成员不会出现问题;但EasyX上述类中指针和非指针成员在拷贝构造或赋值运算后直接全部错乱。

希望官方可以尽快处理这个问题。

另:环境为Visual Studio 2019 Professional

ava
L.Y.Q

2020-6-3

0

有对应的测试代码吗?

ava
慢羊羊

2020-6-30

技术讨论社区