C++ 11标准库中值和对象的示例?

And*_*zos 5 c++ object language-lawyer c++11

在C++ 11 3p3中,它指出:

实体是,对象,引用,函数,枚举器,类型,类成员,模板,模板特化,命名空间,参数包或此.

在17.6.1.1p1中,它指出:

C++标准库提供以下类型实体的定义:宏,,类型,模板,类,函数,对象.

什么是C++标准库为(不是对象?)和对话提供定义的值的示例:C++标准库为其定义的对象的示例是什么,不是值?

Ker*_* SB 3

对象是存储在内存中的东西(参见 1.8:“对象是存储区域”)。每个对象都有一个值(即它本身),但值更通用,因为每个表达式的计算都会给出一个值。例如,纯右值(例如f()声明的函数的值T f();)可能有也可能没有存储——您无法获取它的地址,并且它的存在可能不需要表明为存储。(但是,一旦将值绑定到引用变量或形式参数,您现在就可以通过名称引用对象了。)

不过,这种差异主要是语言语义上的差异,通常不具有实际重要性。(例如,人们经常提到“临时对象”,尽管“临时值”会更准确。)值和对象都有类型(始终是对象类型),可以对对象进行求值以生成值,并且可以对对象进行计算以生成值。 value 可以被视为一个对象。当谈论代码设计、分配和存储时,我会使用“对象”,而当谈论语言的语法规则时,我会使用“值”。

  • 值是对象可以“保存”的东西,一次一个。 (3认同)
  • *”(例如,人们经常提到“临时对象”,尽管“临时值”会更准确。)“*。“临时价值”这个词对我来说听起来很荒谬。C++ 中的“temporary”属性限制了生命周期。但值没有生命周期。它是一组位的“含义”,在某种程度上是“无关紧要的”。事实上,临时的是保存该值的*对象*。 (2认同)