如果我重载 + 运算符,我可以使用它(假设类是 className)
className operator+(className & c) { // version 1
className T;
...
return T;
}
我也可以使用
className operator+(className & c) { // version 2
....
return *this;
}
这是我的问题:
在版本 2 中,我返回参考还是就这样?为什么?
版本 1 和版本 2,哪个更好?
我们经常写重载=,<<返回引用,使用链=/<<,但是为什么没有引用我们不能使用链=/<<,复制的真正含义是什么?
另一个问题是,我在有效的 c++ 中看到:“尽可能使用 const”和“首选使用传递引用”,这是否意味着我编写类函数声明时尽可能使用 const 和引用?
如果我这样写:
template<typename T>
void Print(const T data[], const int & arraySize) // i use the const, and &
{
for(inti = 0; i < arraySize; ++i)
cout << data[i] << " ";
cout << endl;
}
当我在 main() 函数中编写时,我写道:
int iArray[14] = {7,3,32,2,55,34,6,13,29,22,11,9,1,5};
int numInts = 14; // do I need to specify numInts is const??
打印(iArray,numInts);