在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; }
本文探讨了在C++中实现对象拷贝功能的两种方式:自定义拷贝构造函数和使用隐藏的Clone函数。通过示例代码展示了如何在C++中实现类似于C#中的Clone功能,使得对象复制更加便捷。

480

被折叠的 条评论
为什么被折叠?



