#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;
}
我有这个例子,我预先在SomeClass
中分配一个对象数组,然后在其他方法中,main
在这个例子中,我创建另一个对象并将其添加到{ {1}}
我认为我应该做的一件事是从SomeClass
切换到指针数组,这样我才能在真正需要的时候创建对象。
但我的问题是,当我做{&#34; array[10]
&#34;时,最初为array[0]
分配的内存会发生什么。用新对象替换它&#34; o&#34;?它会被取消分配吗?
答案 0 :(得分:5)
不,没有任何反应。调用对象的赋值运算符以替换对象。
对于这个简单的类,赋值运算符是默认运算符,它或多或少地复制每个对象的成员,一次一个。
(不需要进入移动运营商......等等)