相关疑难解决方法(0)

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

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

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

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

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

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

函数不会改变传递指针C++

我有我的功能,我在targetBubble那里填充,但它在调用此函数后没有填充,但我知道它已填充此函数,因为我有输出代码.

bool clickOnBubble(sf::Vector2i & mousePos, std::vector<Bubble *> bubbles, Bubble * targetBubble) {
    targetBubble = bubbles[i];
}
Run Code Online (Sandbox Code Playgroud)

我正在传递这样的指针

Bubble * targetBubble = NULL;
clickOnBubble(mousePos, bubbles, targetBubble);
Run Code Online (Sandbox Code Playgroud)

为什么它不起作用?谢谢

c++ pointers function

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

18
推荐指数
1
解决办法
5万
查看次数

在c ++中返回对象的最佳方法?

当涉及到c ++时,我很吵,返回对象的更好方法是什么?我来自脚本世界,其中对象总是引用,并且我试图实现相同的概念......我基于何时通过引用传递以及何时通过C++中的指针传递?,一个用户说:"一个好的经验法则:"当你需要时使用引用,当你需要时使用指针"."

// basic layer class
class Layer { private: Channel channel; // NEVER NULL };

// return object by pointer
Channel *Layer::getChannel() {
    return &channel;
};

// return by reference
Channel& Layer::getChannel() {
    return channel;
};
Run Code Online (Sandbox Code Playgroud)

第二个版本的问题是编译器将接受这一行:

Channel channel = layer.getChannel();  // creates a copy BAD
Run Code Online (Sandbox Code Playgroud)

应该是什么时候:

Channel &channel = layer.getChannel();  // reference good
Run Code Online (Sandbox Code Playgroud)

有没有办法强制第二个选项的调用者强制它不创建新的通道,或者是第一个选择更好,即使它永远不会是NULL?

c++

13
推荐指数
1
解决办法
2218
查看次数

What is the difference between different ways of passing a function as an argument to another function?

I have the situation where one function calls one of several possible functions. This seems like a good place to pass a function as a parameter. In this Quoara answer by Zubkov there are three ways to do this.

int g(int x(int)) { return x(1); }
int g(int (*x)(int)) { return x(1); }
int g(int (&x)(int)) { return x(1); }
...
int f(int n) { return n*2; }
g(f); // all three g's above work the same
Run Code Online (Sandbox Code Playgroud)

When should which …

c++ function parameter-passing

8
推荐指数
1
解决办法
150
查看次数

参数的最佳实践?

通常认为将参数作为指针而不是作为值传递时更好吗?显然它在很大程度上取决于情况,但是当有选择时,使用指针会更好吗?

这只是出于记忆的原因吗?

如果它是真的,指针或引用,最好通过什么?

c++ coding-style

6
推荐指数
1
解决办法
3838
查看次数

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

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

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

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

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

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

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

提前致谢!

c++ pointers reference function pass-by-reference

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

指针大小和Pass-by-Reference与Pass-by-P​​ointer

我有两个问题:

  1. 我是对的,在4位系统上,指针是4个字节吗?

  2. 是"通过引用传递"和"通过指针传递相同的东西,只是不同的措辞?

c c++ sizeof pass-by-reference pass-by-pointer

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

C++函数中"通过引用传递"和"通过指针/地址传递"有什么区别?

功能原型:

1. int test (int & i);
2. int test (int * i);
Run Code Online (Sandbox Code Playgroud)

函数调用:

1. test(n);
2. test(&n);
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释尽可能多的方面的差异吗?非常感谢!

c++ pointers function

-1
推荐指数
1
解决办法
136
查看次数