45.赋值运算符

版权声明:本博客为记录本人学习过程而开,内容大多从网上学习与整理所得,若侵权请告知! https://blog.csdn.net/Fly_as_tadpole/article/details/83239867

我们在一个类里面重载赋值运算符的时候,有:

拷贝赋值运算符,移动赋值运算符,以initializer_list为参数的赋值运算符,复合赋值运算符。

复合赋值运算符不得非要是类的成员,不过我们倾向于将所有的赋值运算符包含在类的内部。

拷贝赋值运算符,移动赋值运算符  要考虑自赋值情况。


以initializer_list为参数的赋值运算符

strvec & strvec::operator=(std::initializer_list<int>il)
{
    auto = alloc_n_copy(il.begin(),il.end());alloc_n_copy 返回一个pair,我们之前定义过
    free();//释放自身空间
    elements = data.first;
    first_free = cap = data.second;
    return *this;
}//initializer_list为参的赋值运算符无须检查对象是否是自身。

猜你喜欢

转载自blog.csdn.net/Fly_as_tadpole/article/details/83239867