问题是这样的:
#include <iostream>
class A
{
public:
A()
{
const int i=100;//此处常量在构造函数结束后消失
}
};
void main()
{
A *a=new A();
delete a;//还是在这里消失
}//或在这里消失?
回答是这样的:
你是要问常量性的有效区间吧.构造函数调用之后,析构函数调用之前,常量性能够保证.
单纯的说常量什么时候消失,是在你delete a之后,因为delete a隐式调用了你的 ~A(),这之后对象被析构了,对象内的局部变量当然就消失了.
而常量性严格来说是在析构函数调用之前瞬间消失的,话是这么说,具体编译器怎么实现我也不知道了.
什么叫做常量性?有变量性吗?请解释
常量也有可能被编译器直接优化成立即数,如果左值从来没被用过的化。
常量性就是常量,在程序运行期间不可以改变它的值
变量性那就是变量,可以改变了
,有点废话,不过确实如此)
我认为是在最后那一点消失!
是的,现在翻译外文都喜欢敢时髦,比如“数据库连接性”,其实还不如翻译成“数据库连接机制”。
这个问题很无聊
那上面的回答对不对呢?