非常简单,我正在重新学习C++,而且我正在指点.我理解基本概念,但我遇到了一些麻烦.调用此函数的语法是什么?
void getTime(int& hours, int& minutes, int& seconds) const
{
hours = hr;
minutes = min;
seconds = sec;
}
Run Code Online (Sandbox Code Playgroud)
正如您可能已经猜到的那样,函数的关键是将小时,分钟和秒的时间返回到位于函数调用所在范围内的三个指针.假设已经定义了hr,min和sec .
此外,如果有人想详细说明指针(特别是何时使用&何时使用*),将非常感激.预先感谢.
您的函数签名使用&,表示传递引用.这意味着您只需调用您的函数
int h, m, s;
// ... code ...
getTime(h, m, s);
Run Code Online (Sandbox Code Playgroud)
因为您的函数通过引用传递这些参数,所以每当getTime()更改传递的参数之一时,更改将传播到函数外部,而不是通过值传递的参数,其中更改仅限于函数范围.
您可以通过将指针传递给变量来实现类似的效果:
void getTime(int * hours, int * minutes, int * seconds)
{
// do stuff
}
// ... code ...
int h, m, s;
getTime(&h, &m, &s);
Run Code Online (Sandbox Code Playgroud)
在后一种情况下,&是运营商的地址.通过取消引用传递的地址,您的函数可以在其功能范围之外更改内存.