class A
{
    private:
        int a;
    public:
        A(int m_a){ a = m_a ;}
        A(const A & Obj){ a = Obj.a; }
    ...
}

A fun1()
{
    A OBJ(3);
    //会创建匿名对象
    return OBJ;

}

void fun2(A OBJ)
{
    cout<<OBJ.a<<endl;
}
int main()
{
    A OBJ_a(1);
    //三种典型的调用复制构造函数的初始化,即已有对象构造后有对象
    A OBJ_b(a);
    A OBJ_c = OBJ_b;
    A OBJ_d(c);

    //函数返回为类类型时,通过复制构造建立临时对象
    A OBJ_d;
    d = fun1();

    //把对象复制到类形参
    A OBJ_e;
    fun2(e);
}


备份地址: 【C++复制构造函数应用场景