我遇到了以下代码,我无法理解其含义:
typedef int INT;
5 .INT::~INT();
注意:数字5和小数之间有一个空格。
问题:
有人可以解释一下这两行究竟是什么意思吗?
2.如果没有typedef,为什么它不起作用?背后的任何原因?5 .int::~int()
抛出错误。
答案 0 :(得分:16)
.INT::~INT()
是伪析构函数调用,对模板化代码很有用。
请注意,如果没有typedef
类型,则无法使用它。
Standardese:
C ++03§5.2.4“伪析构函数调用”:
- 在点
醇>.
或箭头->
运算符后使用伪析构函数名称表示析构函数 由 type-name 命名的非类类型。结果只能用作函数调用运算符()
的操作数,并且此类调用的结果具有类型void
。唯一的影响是在点或箭头之前评估后缀表达式。