BitWiseCopyClass objB;
objB = objA;
在windows下面这个指向的不是同一地址!
------解决方案--------------------抛出 double free 异常 是一个确定的行为
你写了行为未定义的代码却去期待一个确定的行为.这是错的.
------解决方案--------------------用Visual Studio构建,执行得到的exe的时候直接被杀毒软件干掉。。。。。
------解决方案--------------------
你不会在执行得到的exe之前先把杀毒软件干掉吗?
------解决方案--------------------造成内存泄露并且还导致了两个对象的指针指向同一块内存区域,我觉得delete在指向之前可能做了某些判断致使未抛出错误,这仅仅是我个人观点。
永远不要依赖于未定义行为
------解决方案--------------------取决于编译器实现而不是操作系统。这属于UB(未定义的行为).
------解决方案--------------------两次delete同一内容,查一下C++标准文档,如果没有规定,就别指望两个平台会有一致的结果.
------解决方案--------------------double free异常是由管理内存分配的库抛出的,这个库是由平台决定的,自然不同平台下的行为可能会不一样。
C++标准里只说这是一个未定义。