我是C++编程的新手,但我有Java经验.我需要有关如何将对象传递给C++中的函数的指导.
我是否需要传递指针,引用或非指针和非引用值?我记得在Java中没有这样的问题,因为我们只传递了保存对象引用的变量.
如果您还可以解释在哪里使用这些选项,那将会很棒.
我正在研究指针参考,并遇到了不同的方式来提供参数.有人可以解释每个人的实际含义吗?
我认为第一个很简单,x就是输入参数的副本,因此在堆栈上创建了另一个变量.至于其他人,我很无能为力.
void doSomething1(int x){
//code
}
void doSomething2(int *x){
//code
}
void doSomething3(int &x){
//code
}
void doSomething3(int const &x){
//code
}
Run Code Online (Sandbox Code Playgroud)
当声明变量时,我也会看到这样的东西.我不明白他们之间的差异.我知道第一个将放入堆栈中100的变量y.它不会创建新地址或任何东西.
//example 1
int y = 100;
//example 2
int *y = 100;
//Example 3: epic confusion!
int *y = &z;
Run Code Online (Sandbox Code Playgroud)
问题1:我如何使用这些方法?什么时候最合适?
问题2:何时以这种方式声明变量?
例子很棒.
PS这是我没学习C++的主要原因之一,因为Java只有垃圾收集.但现在我必须进入C++.
可能的重复:
当C++中的pass-by-pointer更喜欢传递引用时?
在C++中通过引用传递指针是否有好处?
如何将对象传递给C++中的函数?
大家好,我正在努力开发一个大型面向对象的c ++应用程序框架,作为我的化学工程研究生研究的一部分.
我发现我的许多函数都指向自定义对象或STL对象.我发现在编写代码方面,这使得访问存储在其中的函数或变量变得更加困难.
但是,除了简单之外,通过引用传递指针是否有任何优点/缺点?
如果一个优于另一个优势,我可能会考虑重构我的代码以统一使用任何最佳方法.如果没有,我仍然可以重构为了可读性而始终使用引用传递(即不必取消引用)
我想再做出最好的决定,因为我的框架已经有40多个文件了,所以我想尽可能早地实现统一的结构,并且无论最佳方法是什么.
提前致谢!