相关疑难解决方法(0)

如何将对象传递给C++中的函数?

我是C++编程的新手,但我有Java经验.我需要有关如何将对象传递给C++中的函数的指导.

我是否需要传递指针,引用或非指针和非引用值?我记得在Java中没有这样的问题,因为我们只传递了保存对象引用的变量.

如果您还可以解释在哪里使用这些选项,那将会很棒.

c++ pointers c++-faq pass-by-reference pass-by-value

245
推荐指数
4
解决办法
13万
查看次数

什么时候在C++中使用*,&或const?

我正在研究指针参考,并遇到了不同的方式来提供参数.有人可以解释每个人的实际含义吗?

我认为第一个很简单,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++ pointers reference

11
推荐指数
2
解决办法
1210
查看次数

通过参考传递v.通过指针 - 优点?

可能的重复:
当C++中的pass-by-pointer更喜欢传递引用时?
在C++中通过引用传递指针是否有好处?
如何将对象传递给C++中的函数?

大家好,我正在努力开发一个大型面向对象的c ++应用程序框架,作为我的化学工程研究生研究的一部分.

我发现我的许多函数都指向自定义对象或STL对象.我发现在编写代码方面,这使得访问存储在其中的函数或变量变得更加困难.

但是,除了简单之外,通过引用传递指针是否有任何优点/缺点?

如果一个优于另一个优势,我可能会考虑重构我的代码以统一使用任何最佳方法.如果没有,我仍然可以重构为了可读性而始终使用引用传递(即不必取消引用)

我想再做出最好的决定,因为我的框架已经有40多个文件了,所以我想尽可能早地实现统一的结构,并且无论最佳方法是什么.

提前致谢!

c++ pointers reference function pass-by-reference

0
推荐指数
1
解决办法
4505
查看次数