【发布时间】:2018-01-20 18:42:14
【问题描述】:
所以我有一个联合类型结构,它包含一个指向字符串的指针,作为联合可以持有的类型之一,我想重载 = 运算符,以便我可以进行分配。为了确保我没有内存泄漏,我正在检查联合的类型是否已经是字符串,如果是,我删除旧值并分配新值。
我的问题是,如果我执行“aString = aString”,我的检查会删除它要分配的字符串,这当然会导致段错误。我知道这不是我需要使用的东西,但我只想确保正确处理此案例。所以我的问题是如何正确处理这个问题?
【问题讨论】:
-
你应该检查你的
operator =是否你是自我分配
标签: c++ memory-management memory-leaks c++14 unions