c++ Primer -- 基本语言(6)

1.在c中,对象的定义并不被视为C语言的语句,块中的所有对象定义必须出现在任何程序语句之前。在C++中,对象的定义是C++语言的一条语句,所以可以将对象定义放在任何其他语句能够出现的地方。
2. 对于类对象的定义来说,由于类对象与构造函数和析构函数相关联,所以声明的局部性就变成必须的了。
a)在做函数或语句块中的任何事情之前,所有类对象的构造函数均被调用。声明的局部性使我们能够把初始化的开销分摊到函数或语句块中。
b)或许更重要的是,通常情况下,在函数或语句块内部的所有程序语句都被执行之前,该函数或者语句块就结束了。在成功地经过这些终止点之前定义类对象会导致执行不必要的构造函数——析构函数对;。如果给出足够多的类对象或者需要大量计算的构造函数和析构函数,这将对程序的运行效率产生不必要的影响。
3.关键字case后面的值必须是一种整数类型的常量表达式。另外,任意两个case标签不能有同样的值:如果有,则导致编译错误。
4.isalpha()是标准C库的一个例程:如果它的参数是一个英文字母,则返回值为true。<ctype.h>
5.把一条声明语句放在与case或default相关联的语句中是非法的,除非它被放在一个语句块中。
6.for循环、while循环的条件中支持对象定义,do while循环的条件中不支持对象定义。
7.break语句终止最近的while、do while、for 或者 switch语句。程序的执行权被传递给紧接着被终止语句之后的语句。一般来说,break语句只能出现在循环或者switch语句中。
8.continue 语句导致最近的循环语句的当前迭代结束,执行权被传递给条件计算部分。continue 语句只有出现在循环语句中才是合法的。
9.goto语句不能向前跳过没有被语句块包围的声明语句。这里的原因与switch语句中的case标签中的声明语句相同,是编译器为类对象插入构造函数/析构函数调用的需要。语句块保证构造函数和析构函数都被执行或忽略,保证对象只在它被初始化的地方才可见。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值