摘要: 7.2 枚举声明1、枚举是一种由命名常量构成的独立类型(3.9.1)。在其作用域内,其名字被称为枚举名。enum-name:identifierenum-specifier:enum identifieropt { enumerator-listopt }enumerator-list:enumerator-definitionenumerator-list , enumerator-definitionenumerator-definition:enumeratorenumerator = constant-expression // 带初始化体的枚举符定义enumerator:identi 阅读全文
posted @ 2006-04-18 13:56 Goncely 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 5.2.4 伪析构函数调用1、在点号.或箭头->之后的pseudo-destructor-name代表了由type-name命名的非类类型的析构函数。pseudo-destructor-name只能用作函数调用操作符()的操作数,此类调用的结果为空类型,它的唯一作用在于计算点号或箭头前面的后缀表达式。例如: typedef int I; I x = 10; x.I::~I(); // or x.~I(); x = 20;上面的x.I::~I();语句其实是调用了int类型的析构函数,但这并不会销毁x对象,x对象还能正常使用,x.I::~I();在此处并无实质作用。另外,如果将x.I::~ 阅读全文
posted @ 2006-04-18 11:30 Goncely 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 5.2.3 显式类型转换(函数式记法)1、后跟被圆括号括起来的表达式列表的简单类型说明符(7.1.5)构造了给定表达式列表的指定类型值。如果表达式列表为单个表达式,这个类型转换表达式等价于相应的转型(强制类型转换)表达式(5.4)。如果简单类型说明符指定一个类类型,这个类类型必须是完全的。如果表达式列表指定了多个值,类型必须为具有适当构造函数(8.5, 12.1)的类,并且表达式T(x1, x2, …)在效用上等价于声明T t (x1, x2, …);其中t为编译器引入的临时变量,表达式的结果等于t的右值。2、对于非数组完全对象类型或(可能cv限定的)空类型的简单类型说明符(7.1.5.2)T 阅读全文
posted @ 2006-04-18 11:29 Goncely 阅读(210) 评论(0) 推荐(0) 编辑