我是 C++ 的新手。我们最近开始在课堂上探索参考变量,我对它们感到非常困惑。不一定是如何做它们,因为我知道它们会切换变量值,但更多的是沿着为什么开发人员想要做这样的事情?他们完成了什么?它们节省内存吗?他们是否避免返回信息?
这是我们正在进行的项目的一部分。我们需要至少包含一个引用变量。我可以看到如何在没有引用变量的情况下编写程序,但我不知道引用变量在哪里有用或必要。
“用户可能希望获得一对多房间的估价。费率基于墙壁和/或天花板的平方英尺。该公司估计,粉刷 200 平方英尺的墙壁空间需要 2.5 小时,粉刷 200 平方英尺的墙壁空间需要 3.2 小时。在天花板上粉刷相同的区域。人工费率为每小时 40 美元。如果粉刷墙壁的工作总面积超过 1400 平方英尺,那么对于 1400 平方英尺以上的所有平方英尺,客户将获得 15% 的折扣。没有油漆天花板折扣。
该计划应以专业格式打印预计成本的最终报告。
程序将在退出之前询问用户是否要进行更多计算。”
我不是找你们给我做作业,作为参考,我们刚刚完成了学习功能。我很好,但是通过这些网站阅读的东西有很多我不明白。
而且,本质上,studentID 将设置为 21654。我理解正确吗?
让我们再试一次:
我已经审查了这个建议的重复。虽然它确实涵盖了使用引用变量而不是指针的优点/缺点的基础知识,并讨论了使用这两种变量的多种原因,但我仍然质疑何时(何时合适与不必要)和为什么(为什么)的基本思想在某些情况下是合适的,它给程序带来了什么优势?)
我应该使用这些变量以及如何使用(实际的语法和位置)。这里几乎每个人都很棒,通过与你们的互动,我在这个主题上学到了很多东西。尽管其中大部分内容对经验丰富的程序员来说都是重复且令人恼火的,但对我来说却是全新的,我需要参与对话,就像我需要信息一样。我在许多项目中使用过 Stack Overflow,例如学习 Java 的 newString.equalsIgnoreCase(),我很钦佩您的知识。我只能告诉你真相,如果这还不够好,那就是这样了。
好吧,让我回顾一下我目前的理解:
引用变量往往会减少函数和/或程序中不需要的变量修改。
引用变量用于修改函数内现有的变量
这非常有用,因为它可以“移动”值,同时最大限度地减少这些值的复制。
引用变量修改函数/程序中的现有变量
我不知道你们是否还能阅读这篇文章,因为它已被标记为重复。我一直在玩你们给我的一些小程序,重新阅读了我的书的部分内容,做了进一步的研究,等等,我think我的理解是初级的。这些引用变量允许您更改和/或使用代码中的其他变量,而无需将它们直接拉入代码中。我不记得哪个用户正在使用 foo(hubble, bubble) 示例,但最终是他/她的代码让它点击了。您实际上是在使用和/或重新分配变量,而不是仅仅使用该值。
引用变量只不过是变量的别名。当您只想传递值而不是将相同的变量复制到内存中的不同位置时,可以使用它。因此,使用引用可以避免复制,从而节省内存。
根据比亚尼·斯特鲁斯特鲁普常见问题及解答 http://www.stroustrup.com/bs_faq2.html#pointers-and-references:
C++ 继承了 C 的指针,所以我无法在不删除它们的情况下删除它们
造成严重的兼容性问题。参考资料对于
有几件事,但我在 C++ 中引入它们的直接原因是
支持运算符重载。例如:
void f1(const complex* x, const complex* y) // without references
{
complex z = *x+*y; // ugly
// ...
}
void f2(const complex& x, const complex& y) // with references
{
complex z = x+y; // better
// ...
}
更一般地说,如果您想同时拥有指针的功能
和参考的功能,您需要两个不同的
类型(如 C++ 中)或单个操作上的两组不同的操作
类型。例如,对于单一类型,您需要两个操作来
分配给所引用的对象以及分配给
参考/指针。这可以使用单独的运算符来完成(如
模拟)。例如:
Ref<My_type> r :- new My_type;
r := 7; // assign to object
r :- new My_type; // assign to reference
或者,您可以依赖类型检查(重载)。为了
例子:
Ref<My_type> r = new My_type;
r = 7; // assign to object
r = new My_type; // assign to reference
另外,请阅读这个堆栈溢出问题 https://stackoverflow.com/questions/57483/what-are-the-differences-between-a-pointer-variable-and-a-reference-variable-in关于指针变量和引用变量之间的区别。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)