作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个对象数组:
Square sq[81];
我认为它使用默认构造函数来创建每个。
当我通过 for 循环对每个对象进行初始化时,它会为数组中的每个 Square
对象调用析构函数。
for (int k=0; k<9; k++) {
for(int j=0; j<9; j++) {
sq[count++] = Square(k, j);
}
}
调用Square(k, j)
时,是否删除了sq[]
中的对象并创建了一个新对象?
最佳答案
sq[count++] = Square(k, j);
When Square(k, j) is called, is it deleting the object in sq[] and creating a new one?
没有。
Square(k, j)
创建一个新的临时 对象并=
将其复制到旧对象中。然后临时对象被销毁,因为它不再需要并且超出范围。
顺便说一句,你实际上并没有在循环中初始化任何东西(我的意思是除了那个临时的);你只是在事后分配。
关于c++ - 为数组中的每个对象调用析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7485606/
我是一名优秀的程序员,十分优秀!