C++ 对象定义问题
来源:百度知道 编辑:UC知道 时间:2024/08/20 19:35:21
类似如下的代码:
...
for (int i = 0; i < size; i++) {
type t;
...
}
...
其中 t 会不会被重复定义多次? 会不会影响效率?
(使用 G++)
...
for (int i = 0; i < size; i++) {
type t;
...
}
...
其中 t 会不会被重复定义多次? 会不会影响效率?
(使用 G++)
是的,正如你所想的那样,每当循环到了type t;语句这里时,就重新为对象t分配一个type类型的空间,而上一次循环时所分配的对象t的生命周期就已经结束,不可调用,也就是说,每次执行type t;语句,就会调用到type类的构造函数,循环尾(但循环继续)调用一次析构函数,释放本次调用的空间。当出了循环体后,这个对象将是不存在的!
不会出现这样得问题
int i=0只会被执行一次
这样应该会报错的。