C++中四大构造函数(拷贝构造、拷贝复制、移动构造、移动赋值)

拷贝构造函数:在声明的过程中,通过已有的实例对其赋值

拷贝赋值构造:在声明结束以后,使用运算符“=”进行赋值

移动构造:通过某个返回值为该类的函数在声明时进行赋值(或move()函数)

移动赋值构造:在声明之后,通过某函数进行赋值(或move()函数)

拷贝构造函数

拷贝构造函数体:

T(const T&) {

    cout << "T(const T&) 拷贝构造:" << this << endl;

}

调用方式:

T t1;

T t2 = t1;  //注意,该构造方式调用的是拷贝构造函数

//========

T t3(t1);

//========

T t4{t1};

拷贝赋值构造

函数体:

T& operator=(const T&) {

    cout << "T& operator=(const T&) 拷贝赋值构造:" << this << endl;

}

调用方式:

T t1;

T t2;

t1 = t2;

移动构造

函数体:

T(T &&) {

    cout << "T(T &&) 移动构造:" << this << endl;

}

调用方式:

T t = CreateT(); // 通过一个函数来返回拷贝的对象

 

T t1;

T t2(std::move(t1));

移动赋值构造

函数体:

T& operator=(T&&) {

    cout << "T& operator=(T&&) 移动赋值构造:" << this << endl;

}

调用:

T t;

t = T();

       

T t1, t2;

t1 = std::move(t2);

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值