C++中实现对象的clone()

在C#中,许多对象自动实现了clone函数,在C++中,要拷贝一个对象,除了自定义一个拷贝构造函数来实现对象复制外,还可以像C#中那样实现一个clone函数,这需要借助编译器实现的一个隐藏拷贝构造函数,这样的做法,更省心。

#include "stdafx.h"
#include <iostream>

class CA
{
public:
    int value;
    CA* clone() const { return new CA( *this );}
    //仅一个构造函数
    CA(int a ){value=a;}   
};

int _tmain(int argc, _TCHAR* argv[])
{
    CA* objA=new CA(10);
    CA* objtemp=objA->clone();
    delete objA;
    std::cout<<objtemp->value;
    delete objtemp;
    return 0;
}

 

posted @ 2015-04-20 14:55  松山居士  阅读(2264)  评论(0)    收藏  举报