【发布时间】:2010-05-27 11:48:09
【问题描述】:
标准说
变量由对象的声明引入。变量名表示对象。
但这个定义究竟意味着什么?
变量是否为对象命名,即变量是否只是匿名对象的命名机制?还是变量本身就是名称?
或者在每个变量也是一个对象的意义上,一个变量是一个命名对象?
或者变量只是一个“代理”,其名称将所有操作“委托”给真实对象?
为了进一步混淆,许多 C++ 书籍似乎将变量和对象视为同义词。
您对此有何看法?
关于实体,引用自 C++0x 草案:
实体是值、对象、引用、函数 [...]
每个表示实体的名称都由声明引入。
通过对象的声明引入变量
从这些陈述中,我得出结论,变量是名称,因此不能是对象。这真的让我很困惑:)
【问题讨论】:
-
我的蹩脚尝试:一个变量是一个可以赋值的左值,如果它没有标记
const。 -
变量本质上只是一个标签,它提供对特定内存位置内容的访问——与将特定内存位置的地址保存为它的指针相比价值。