问题标签 [pass-by-pointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
663 浏览

c++ - 通过指针传递对象并修改它不会改变对象的状态

代码如下。我有一个名为 book_b 的数据成员,在函数 OB::x() 中,这个 unordered_map 插入了对象。在第一次插入时,键为 10,在 key=10 处插入的新对象工作正常。但是,当 key=10 再次出现时,我预计会在 key=10 处创建并插入一个新对象(替换 key=10 处的前一个对象)。然而,一旦 OB::x() 返回,当我们回到 OB::y() 时,就好像从未插入过新对象。

我认为这应该可行,因为我通过指向修改其状态的函数的指针传递 book_b 对象?我担心我的基本理解有问题。

0 投票
1 回答
42 浏览

c++ - 避免无意复制对象 - 可用的技术

(这里有三个相关的问题)

我在 C++ 中遇到的最讨厌的事情之一是意外地传递/复制了一个对象,然后想知道为什么它的状态不是你所期望的。我最近遇到了一种情况,我通过指针传递,但我没有得到我期望的状态,结果我不得不通过引用传递指针,这真的让我很震惊!

鉴于这种情况,我可以确认一下吗:

我有以下技术可用于保持x更新状态y

或者

或者

1)如果我对x?yxy


2) 如果 x 是向量或另一个 STL 集合的对象,上述情况会改变吗?还是同样的规则适用?


3)构造函数中的指针分配给数据成员的类呢:

y必须在这里通过引用传递,否则会分配指针的副本?我问这个是因为我在这里问了另一个 SO 问题:

指向指针分配的指针不起作用

0 投票
5 回答
87879 浏览

c++ - C++ 是通过值还是引用传递对象?

一个简单的问题,我在这里找不到答案。

我的理解是,在调用期间将参数传递给函数时,例如

对于简单的数据类型,如int,float等,该函数按值调用。

但是如果myVariable是一个数组,则只传递起始地址(即使我们的函数是按值调用的函数)。

如果myVariable是一个对象,也只传递对象的地址,而不是创建一个副本并传递它。

所以回到这个问题。C++ 是通过引用还是值传递对象?

0 投票
1 回答
77 浏览

c++ - 通过引用或指针正确传递向量

我尝试(基本上)为 std::vector (它的 D3D10 渲染)制作一个 Setter 方法

其中lights是GraphicsClass的私有成员,声明:

现在,数组的属性被复制;但元素lights[0], lights[1]等包含垃圾。我使用 Visual Studio 调试器检查了这一点。

我显然可以通过使用来解决

但我不喜欢我不理解这个话题,而且这段代码似乎慢了一点。

提前感谢您的回答!

根据要求的 LightClass:

构造函数和析构函数都是空的,这是一个错误(我从只创建指针的类中复制了它。比如 Type *thing。我是 OOP 的新手)

不过,我可能会将矢量更改为矢量。

0 投票
4 回答
315 浏览

c - C程序没有进入任何for循环?

这是一个家庭作业

我的程序似乎根本没有进入任何 for 循环。在某一时刻,我拥有了每个函数,main并且正在对 2 个全局变量进行操作,而无需通过引用或值传递,并且一切正常。从那时起,我已经将我的函数移出main并通过引用传递一个数组,并将该数组的长度传递给每个函数,我得到printf了循环之外的语句,但除此之外没有任何执行。

根据 GDB,我的程序以退出代码退出046

该程序很简单,它将一个值设置为我的数组的长度,然后提示用户输入整数值来填充该数组。然后我对数组进行排序,然后打印数组,最后调用getMax(int *array, int n)将最大值打印到屏幕上。

输出示例如下:

我好像把什么东西弄坏了,我不应该弄乱它。这是我的尝试。

感谢您的帮助,我将坐在这里试图找到我的错误。

0 投票
2 回答
184 浏览

c++ - 按值传递指针

具有以下功能:

如何调用它,以便通过引用传递 pMediaType 并保留对方法中的对象所做的一切?

0 投票
4 回答
76 浏览

c++ - 为什么我可以通过引用调用字符串文字而不是数组?

如果我不清楚这个问题,请查看下面的代码。为什么字符测试有效,而整数测试无效?我发现很难理解的字符串文字和数组之间的根本区别是什么?

0 投票
4 回答
835 浏览

c++ - 使用指针和解引用指针通过引用传递

哪个更好:使用引用void increment(int& x)传递或使用指针传递void increment(int* x)

  1. 或者

  2. /li>
0 投票
1 回答
80 浏览

d - D 是否通过复制传递价值?

如果我做:

b指向还是副本?a

0 投票
1 回答
499 浏览

c++ - 将类对象数组作为 const 传递给函数,以防止对类对象进行任何修改

嗨,我是 C++ 新手,这个问题可能很简单。请多多包涵 :)

我有一个类数组Foo ==> Foo foo_objects[4];

如果我想将此数组传递给函数:

现在我想将这个数组传递foo_objects给函数并防止对这些对象进行任何修改。

这是正确的方法吗?这是否保证所有四个对象都foo_objects将受到保护,不会在do_something方法内部进行任何修改,或者只有数组中的第一个对象享有const特权?