问题标签 [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.
c++ - 通过指针传递对象并修改它不会改变对象的状态
代码如下。我有一个名为 book_b 的数据成员,在函数 OB::x() 中,这个 unordered_map 插入了对象。在第一次插入时,键为 10,在 key=10 处插入的新对象工作正常。但是,当 key=10 再次出现时,我预计会在 key=10 处创建并插入一个新对象(替换 key=10 处的前一个对象)。然而,一旦 OB::x() 返回,当我们回到 OB::y() 时,就好像从未插入过新对象。
我认为这应该可行,因为我通过指向修改其状态的函数的指针传递 book_b 对象?我担心我的基本理解有问题。
c++ - 避免无意复制对象 - 可用的技术
(这里有三个相关的问题)
我在 C++ 中遇到的最讨厌的事情之一是意外地传递/复制了一个对象,然后想知道为什么它的状态不是你所期望的。我最近遇到了一种情况,我通过指针传递,但我没有得到我期望的状态,结果我不得不通过引用传递指针,这真的让我很震惊!
鉴于这种情况,我可以确认一下吗:
我有以下技术可用于保持x
更新状态y
:
或者
或者
1)如果我对x
?y
x
y
2) 如果 x 是向量或另一个 STL 集合的对象,上述情况会改变吗?还是同样的规则适用?
3)构造函数中的指针分配给数据成员的类呢:
y
必须在这里通过引用传递,否则会分配指针的副本?我问这个是因为我在这里问了另一个 SO 问题:
c++ - C++ 是通过值还是引用传递对象?
一个简单的问题,我在这里找不到答案。
我的理解是,在调用期间将参数传递给函数时,例如
对于简单的数据类型,如int
,float
等,该函数按值调用。
但是如果myVariable
是一个数组,则只传递起始地址(即使我们的函数是按值调用的函数)。
如果myVariable
是一个对象,也只传递对象的地址,而不是创建一个副本并传递它。
所以回到这个问题。C++ 是通过引用还是值传递对象?
c++ - 通过引用或指针正确传递向量
我尝试(基本上)为 std::vector (它的 D3D10 渲染)制作一个 Setter 方法
其中lights是GraphicsClass的私有成员,声明:
现在,数组的属性被复制;但元素lights[0], lights[1]
等包含垃圾。我使用 Visual Studio 调试器检查了这一点。
我显然可以通过使用来解决
但我不喜欢我不理解这个话题,而且这段代码似乎慢了一点。
提前感谢您的回答!
根据要求的 LightClass:
构造函数和析构函数都是空的,这是一个错误(我从只创建指针的类中复制了它。比如 Type *thing。我是 OOP 的新手)
不过,我可能会将矢量更改为矢量。
c - C程序没有进入任何for循环?
这是一个家庭作业
我的程序似乎根本没有进入任何 for 循环。在某一时刻,我拥有了每个函数,main
并且正在对 2 个全局变量进行操作,而无需通过引用或值传递,并且一切正常。从那时起,我已经将我的函数移出main
并通过引用传递一个数组,并将该数组的长度传递给每个函数,我得到printf
了循环之外的语句,但除此之外没有任何执行。
根据 GDB,我的程序以退出代码退出046
。
该程序很简单,它将一个值设置为我的数组的长度,然后提示用户输入整数值来填充该数组。然后我对数组进行排序,然后打印数组,最后调用getMax(int *array, int n)
将最大值打印到屏幕上。
输出示例如下:
我好像把什么东西弄坏了,我不应该弄乱它。这是我的尝试。
感谢您的帮助,我将坐在这里试图找到我的错误。
c++ - 按值传递指针
具有以下功能:
如何调用它,以便通过引用传递 pMediaType 并保留对方法中的对象所做的一切?
c++ - 为什么我可以通过引用调用字符串文字而不是数组?
如果我不清楚这个问题,请查看下面的代码。为什么字符测试有效,而整数测试无效?我发现很难理解的字符串文字和数组之间的根本区别是什么?
c++ - 使用指针和解引用指针通过引用传递
哪个更好:使用引用void increment(int& x)
传递或使用指针传递void increment(int* x)
?
-
或者
- /li>
d - D 是否通过复制传递价值?
如果我做:
是b
指向还是副本?a
c++ - 将类对象数组作为 const 传递给函数,以防止对类对象进行任何修改
嗨,我是 C++ 新手,这个问题可能很简单。请多多包涵 :)
我有一个类数组Foo ==> Foo foo_objects[4];
如果我想将此数组传递给函数:
现在我想将这个数组传递foo_objects
给函数并防止对这些对象进行任何修改。
这是正确的方法吗?这是否保证所有四个对象都foo_objects
将受到保护,不会在do_something
方法内部进行任何修改,或者只有数组中的第一个对象享有const
特权?