拷贝构造函数

 2023-05-12 17:20:47  阅读 0

在C++的类中,若是使用者自行写入构造函数则本身自带的构造函数会消失。

 

但是,类中本身自带的不仅仅只有默认构造函数,还有默认的拷贝构造函数,拷贝构造也是一种构造函数,可以用来将同类的对象进行赋值,具体案例如图:

 

#include <iostream>
using namespace std;
​
class Num{
public:
    int _num;
public:
    Num(){}
    Num(int num): _num(num){}
    void show(){
        cout << this->_num << endl;
    }
};
​
int main(){
    Num num1(100);
    Num num2(num1);
​
    num1.show();
    num2.show();
    return 0;
}

 

 

拷贝构造可以理解为将一个类的值拷贝给另外一个类,此时运行代码就会发现num2虽然没有赋初始值,但是因为拷贝构造的使用,其内部的属性值依然为与num1的属性值相同,为100。

 

 

由此不难发现,此时默认的拷贝构造应该是这样:

 

Num(const Num& num){
        this->_num = num._num;
}

 

 

与无参构造相同,一旦使用者自己写入拷贝构造则默认的拷贝构造就不存在了。通常,在使用的时候会使用const引用的方法,这种方法即可以防止对传入的参数做出修改,又可以大大的提高传参的速度。

下一篇: 函数指针
标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码