分享

拷贝构造函数

 融水公子 2018-08-07
1一个对象调用另一个对象时候调用拷贝构造函数
源代码:
#include<iostream>
using namespace std;

class Point{
    private:
    int x,y;
    public:
    Point(int x,int y){this->x=x;this->y=y;}
    Point(Point& p){
        this->x=p.x;
        this->y=p.y;
        cout<<"拷贝构造函数被调用!"<<endl;
    }
    int Getx(){return x;}
    int Gety(){return y;}
};

int main(){
    Point A(1,2);
    Point B(A);
    cout<<B.Gety()<<endl;
}

 
2当函数的参数是一个类 类型时  调用拷贝构造函数
源代码2:
#include<iostream>
using namespace std;

class Point{
    private:
    int x,y;
    public:
    Point(int x,int y){this->x=x;this->y=y;}
    Point(Point& p){
        this->x=p.x;
        this->y=p.y;
        cout<<"拷贝构造函数被调用!"<<endl;
    }
    int Getx(){return x;}
    int Gety(){return y;}
};

int func1(Point p){
    cout<<p.Getx()<<endl;
}

int main(){
    Point A(1,2);
    func1(A);
}
 

3当函数的返回值类型是类 类型时  调用构造函数 ...
#include<iostream>
using namespace std;

class Point{
    private:
    int x,y;
    public:
    Point(int x,int y){this->x=x;this->y=y;}
    Point(Point& p){//拷贝构造函数
        this->x=p.x;
        this->y=p.y;
        cout<<"拷贝构造函数被调用!"<<endl;
    }
    int Getx(){return x;}
    int Gety(){return y;}
};

int func1(Point p){
    cout<<p.Getx()<<endl;
}

Point func2(){
    Point A1(12,23);
    return A1;//调用拷贝构造函数
}
int main(){
    Point B=func2();
    cout<<B.Getx()<<endl;
    
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多