And*_*zos 5 c++ object language-lawyer c++11
在C++ 11 3p3中,它指出:
实体是值,对象,引用,函数,枚举器,类型,类成员,模板,模板特化,命名空间,参数包或此.
在17.6.1.1p1中,它指出:
C++标准库提供以下类型实体的定义:宏,值,类型,模板,类,函数,对象.
什么是C++标准库为(不是对象?)和对话提供定义的值的示例:C++标准库为其定义的对象的示例是什么,不是值?
对象是存储在内存中的东西(参见 1.8:“对象是存储区域”)。每个对象都有一个值(即它本身),但值更通用,因为每个表达式的计算都会给出一个值。例如,纯右值(例如f()
声明的函数的值T f();
)可能有也可能没有存储——您无法获取它的地址,并且它的存在可能不需要表明为存储。(但是,一旦将值绑定到引用变量或形式参数,您现在就可以通过名称引用对象了。)
不过,这种差异主要是语言语义上的差异,通常不具有实际重要性。(例如,人们经常提到“临时对象”,尽管“临时值”会更准确。)值和对象都有类型(始终是对象类型),可以对对象进行求值以生成值,并且可以对对象进行计算以生成值。 value 可以被视为一个对象。当谈论代码设计、分配和存储时,我会使用“对象”,而当谈论语言的语法规则时,我会使用“值”。
归档时间: |
|
查看次数: |
258 次 |
最近记录: |