#include <iostream>
class Object {
public:
int x;
Object() { }
Object(int x) {
this->x = x;
}
};
class SomeClass {
public:
Object array[10];
int n;
SomeClass() { n = 0; }
void insert(Object o) {
array[n++] = o;
}
};
int main() {
SomeClass s;
Object test = Object(4);
s.insert(test);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我有这个例子,我预先分配一个对象数组,SomeClass然后在其他方法中,main在这个例子中,我创建另一个对象并将其添加到数组中SomeClass
我认为我应该做的一件事是切换array[10]到一个指针数组,这样我才能在真正需要的时候创建对象.
但我的问题是,array[0]当我array[n++] = o用新对象"o"替换它时,最初分配的内存会发生什么?它会被取消分配吗?
不,没有任何反应.调用对象的赋值运算符以替换该对象.
对于这个简单的类,赋值运算符是默认运算符,它或多或少地复制每个对象的成员,一次一个.
(不需要进入移动运营商......等等)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |