这是我经常有的一个问题,最后想听听人们对自己喜欢的风格的看法。
使用(出于只读目的)构造函数中的参数或成员是更好/首选的做法吗?例如,在这个简单的向量类中:
#include <iostream>
#include <array>
class SimpleDoubleVector {
private:
double * _data;
std::size_t _size;
public:
SimpleDoubleVector(double * data, std::size_t size) :
_size(size) {
_data = new double[size];
for (int k=0; k<size; ++k)
_data[k] = data[k];
}
~SimpleDoubleVector() {
delete[] _data;
}
};
是不是更好
size
在整个构造函数中使用(如图所示)或- 首先分配/初始化
_size
,然后使用_size
可能的后果:
哪个更具可读性?
哪个会提供更好的性能(或者它们会因为复制传播而等效)?直觉上,感觉从参数中读取会更有效率,因为它永远不会被写入,因此会产生更简单的依赖图。
我知道这可能看起来很迂腐,但它经常出现,我真的很想剖析最好的方法(或者至少更好地了解利弊)。