在C 变量的定义++ 11是如下(§3/ 6):
甲变量由比非静态数据成员或对象的其他的基准的声明引入。 变量的名称表示基准或对象。
因此,一个非静态数据成员引用不是变量。 为什么这种区别有必要吗? 这里有什么道理呢?
在C 变量的定义++ 11是如下(§3/ 6):
甲变量由比非静态数据成员或对象的其他的基准的声明引入。 变量的名称表示基准或对象。
因此,一个非静态数据成员引用不是变量。 为什么这种区别有必要吗? 这里有什么道理呢?
这是我可以声明C ++中的变量的一种方法:
int scientist = 7;
这个声明(和定义,在这种情况下)之后,我可以用scientist
读取和设置的值,取它的地址,等这里的另一种宣言: -
class Cloud {
public:
static int cumulonimbus = -1;
};
这是一个比较复杂一点,因为我要引用新的变量作为Cloud::cumulonimbus
,但我仍然可以读取和设置的值,所以它仍然是明显的变量。 这里是一个尚未不同种类的声明: -
class Chamber {
public:
int pot;
};
但这一声明后,没有一个变量叫pot
,或Chamber::pot
。 事实上,有没有新的变量可言。 我宣布一个新的类, 当我后来宣布类的实例,它会有一个叫做成员pot
,但现在,什么叫一点。
类的非静态数据成员不创建一个新的变量本身,它只是帮助你定义类的属性。 如果确实创造了一个新的变量,你能写出这样的代码:
class Chamber {
public:
int pot;
};
void f(bool b) {
if (b)
Chamber::pot = 2;
}
什么会,即使是什么意思? 难道找到的每个实例Chamber
,并设置他们所有的pot
秒至2? 这是一句废话。
快速注脚:标准,这里的语言有关引用具体讲,反而使例子更容易,我已经使用非引用了。 我希望你能看到这并没有改变它的原则。