【发布时间】:2016-01-03 18:13:45
【问题描述】:
如果我有
Class A {
int x;
};
Class B {
vector<A> y;
//...
};
我想在 B 中重载赋值运算符 =。使用默认的 = 运算符就足够了吗?它会只在y 成员上使用vector 的= 运算符吗?
编辑:说我想自己实现类似的东西,如果 b 和 k 都是 B 类型,那么 b = k 将起作用。我是否需要显式调用向量析构函数来释放b 的 y 成员,在实现内部?
它会是什么样子?
B& B::operator=(const B& b) {
if (this == &b) {
return *this;
}
y = b.y;
return *this;
}
原来的向量this->y会在这里被破坏吗?为什么?
【问题讨论】:
-
不知道默认值的情况下为什么要重载它?
标签: c++ class operator-overloading