参数既是指针又是引用
Parameter both a pointer and reference?
我正在检查一个赋值,我刚刚在一个头文件中发现了这个,我必须在.cpp:中填写它
void setData(const component_t * & data_ptr); // Copy the data from data_ptr to the internal buffer.
//The function ASSUMES a proper size for the incomming data array.
如果您想了解component_t,那么它是typedef中的一个float。
所以,我的问题是,data_ptr是什么样的参数?如何用*和&(指针和引用?)。
感谢您的真知灼见!
data_ptr
是指向const component_t
的指针的引用。
在C和C++中,指针其实并不特别。它只是一个指向内存中某个地址的数字。通常,当您将T*
作为参数传递时,您将按值传递;也就是说,表示内存地址的数字只是复制的,就像您按值传递int
一样。
在这种情况下,您将传递一个T*&
,或引用到插入到T。但它的工作方式与传递int&
或对int
的引用的方式大致相同:这意味着您可以更改被引用的对象。
所以在这种情况下,你可以说,例如
void setData(const component_t * & data_ptr)
{
data_ptr = new component_t(/* args... */);
}
尽管这不一定是在现代C++中做事的好方法。
相关文章:
- C++取消引用指针.为什么会发生变化
- 深层复制具有自引用指针的类
- Visual c ++,使用字符串引用/指针调用 dll 函数
- std::unordered_map::提取引用/指针失效
- 为什么在引用指针时将 const 放在 & 符号的左侧有效,而在右侧则无效?
- 区分接受常量参数的函数引用/指针和与函数参数同名的非常量参数
- 如何在 c++ 中使用带有数学运算的引用/指针?
- 了解通过引用传递取消引用指针时C++堆/堆栈分配
- 取消引用指针并立即为其分配变量,导致分段错误
- 如何获取指向类(而不是对象)的引用/指针
- 将类型参数传递给自引用指针
- 我应该如何定义返回指针的函数?(引用指针与指针指针)
- 在析构函数内取消引用指针时出现分段错误
- 来自引用指针的内存泄漏
- 引用指针后面的值
- 无法取消引用指针
- 引用指针调用成员函数
- 未定义的引用指针的变量模板在clang中功能,而不是GCC
- 取消引用指针以创建数组的副本
- 有关启动引用指针的引用的问题