c++ - 值和对象之间有什么区别?

标签 c++

我正在阅读 value types并且 valuesobjects 被提到好像它们意味着不同的东西,所以我假设它们确实如此。然后我尝试做一些研究但没有运气。我知道一个值是一个不能被进一步评估的表达式,但对象不就是一个值的“容器”吗?另外,根据我对表达式的术语理解,说一个对象包含一个表达式(因为值是一个表达式)会很奇怪吗?

我不会开始做太多的猜测,因为这可能只会使一切复杂化,并且可能会将焦点从值和对象之间的差异转移开。

编辑:对于那些将其标记为“太宽泛”的人,下面的问题是不是更宽泛了?What are rvalues, lvalues, xvalues, glvalues, and prvalues ?此外,还有很多其他关于 SO 的“差异”问题,其中许多与我链接的问题一样广泛。那么为什么这个特定问题无效?

最佳答案

是比对象更抽象的概念。

正如评论中提到的那样,值与对象之间的区别/关系类似于水与杯子之间的区别/关系。

您需要一个容器(在本例中为杯子)来盛水,否则会漏水。同样,您需要一个对象来保存值,以免它们很快丢失或被覆盖。

一个对象总是有它的专用存储区域(在内存中),而一个值的生命周期可以短到一条指令(movl %eax, $1)。

关于c++ - 值和对象之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46287904/

相关文章:

c++ - 如何检查下标运算符是否存在?

c++ - 未定义对 Arduino C++ 中类函数的引用

c++ - 如何获取c++自己的目录?

c++ - g++ 产生空目标文件

c++ - 将表面法 vector 投影到 xy 平面上

c++ - 继续获取 1.#INF 作为我的输出

c++ - 当通知迭代器参数初始化为空列表的开头时,list::insert 的行为是什么?

c++ - 了解 OpenCL 在 OpenCV 中的用法(Mat/Umat 对象)

c++ - 没有花括号的 "if" block 使后续的 "else if"嵌套

c++ - 如何正确使用 stdafx.h?