我正在查看作业,我刚刚在头文件中找到了这个,我必须在.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 的浮动。
所以,我的问题是, data_ptr 是什么类型的参数?如何通过*和& (指针和引用都是?)。
感谢您的见解!
答案 0 :(得分:4)
参数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 ++中做事的好方法。