2.4节练习
练习2.26:下面哪些锯子是合法的?如果有不合法的句子,请说明为什么?
(a) const int buf; (b) int cnt = 0;
(c) const int sz = cnt; (d) ++cnt; ++sz;
出题思路:本题旨在考查const限定符的用法,尤其是const对象的定义、初始化和运算。
解答:
本题的所有语句应该被看作是顺序执行的,即形如:
const int buf;
int cnt = 0;
const int sz = cnt;
++cnt;
++sz;
(a)是非法的,const对象一旦创建后其值就不能改变,所以const对象必须初始化。该句应修改为const int buf = 10。
(b)和(c)是合法的。
(d)是非法的,sz是一个const对象,其值不能被改变,当然不能执行自增操作。