【发布时间】:2013-01-18 04:19:15
【问题描述】:
我正在学习 C++,并且正在阅读 book on it,我在其中遇到了这个问题:
struct Vector{
int size;
double* elem;
}
void vector_init(Vector& v, int s){
v.size = s;
v.elem = new double[s];
}
那么在这里,void vector_init(Vector v, int s),如果没有引用运算符,会错吗?在传递对象、结构、数组或其他任何东西作为参数时,我是否必须使用 & 手动通过引用传递?还有其他方法可以做到这一点吗?比如void vector_init(Vector *v, int s)?
感谢任何帮助。
【问题讨论】:
-
提示:不要在 C++ 中使用指针。总有更好的选择。
-
@David 并非总是如此;非拥有指针最好表示为原始指针(当您不能使用引用时,例如需要可分配的类的成员(或成员本身需要可分配)或可以为空时) .
-
在 C++ 中可以完全避免使用指针吗?
-
@rgamber 取决于您需要做什么。大多数情况下它们都可以,尤其是在您编写应用程序代码时。但有时不会。
标签: c++ parameter-passing pass-by-reference