我有以下问题:
~Set()
{
delete _arraySet;
};
void addToSet(T val)
{
if(_currLen < _maxLen)
{
_arraySet[_currLen] = val;
_currLen++;
}
}
Set<T> operator+(Set& other)
{
Set result;
for(int i=0; i< _currLen; i++)
{
result.addToSet(_arraySet[i]);
}
for(int i=0; i< other._currLen; i++)
{
result.addToSet(other._arraySet[i]);
}
return result;
}
致电后
Set<int> temp = x + x;
在main中,我得到_BLOCK_TYPE_IS_VALID断言错误。说实话,我不知道为什么会发生这种情况,但是在运行调试之后,似乎我会立即从operator +中删除结果,而不是对它执行=操作。很抱歉无法提供更多细节......
@Edit:
看起来我一直在错过三级规则。 Here's the link to the article for anyone with similar problem。非常感谢您的帮助!