我有这段代码,我正在考虑简化:
if (numberOfResults > 1)
{
trackResult_ = new TrackResult[numberOfResults];
for (int i=0; i < numberOfResults; i++)
{
// Make a deep copy
TrackResult tempResult = result[i];
TrackResult * clone = new TrackResult(tempResult);
trackResult_[i] = *clone;
}
storeJointResults(trackResult_, numberOfResults);
}
else
{
trackResult_ = new TrackResult(*result);
}
(我“别无选择”,只能在这里使用一个简单的动态数组。在我的工作场所,向量被认为“太复杂”)
我想知道我是否可以逃脱
// even if we just have one result, we init an array size of one
trackResult_ = new TrackResult[numberOfResults];
但是,我在几个方面检查了结果的数量并采取了相应的行动
if (numberOfResults_ == 1)
{
velocity = trackResult_.velocity;
}
那些代码还能用吗?如果不是,为什么?