当前位置:   article > 正文

设计模式之 原型模式(prototype)(C++实现 深拷贝 + 浅拷贝版本[bug])_c++原型模式深克隆

c++原型模式深克隆

本文介绍设计模式中的原型模式。


本质上其实就是克隆。


下面以个人简历为例进行举例说明:


深拷贝版本:

  1. #include <iostream>
  2. #include <string>
  3. #include <memory>
  4. using namespace std;
  5. template<class T>
  6. class ICloneable
  7. {
  8. public:
  9. virtual T* clone() = 0;
  10. };
  11. class CWorkExperience
  12. {
  13. public:
  14. CWorkExperience(){}
  15. CWorkExperience(const string& company,
  16. const string& workTime)
  17. {
  18. m_strCompany = company;
  19. m_strWorkTime = workTime;
  20. }
  21. CWorkExperience(const CWorkExperience& right)
  22. {
  23. m_strCompany = right.m_strCompany;
  24. m_strWorkTime = right.m_strWorkTime;
  25. }
  26. ~CWorkExperience()
  27. {
  28. cout << "CWorkExperience析构" << endl;
  29. printInfo();
  30. }
  31. void setCompany(const string& company)
  32. {
  33. m_strCompany = company;
  34. }
  35. const string& getCompany() const
  36. {
  37. return m_strCompany;
  38. }
  39. void setWorkTime(const string& workTime)
  40. {
  41. m_strWorkTime = workTime;
  42. }
  43. const string& getWorkTime() const
  44. {
  45. return m_strWorkTime;
  46. }
  47. void printInfo()
  48. {
  49. cout << "Company: " << m_strCompany << endl;
  50. cout << "WorkTime: " << m_strWorkTime << endl;
  51. }
  52. private:
  53. string m_strCompany; // company name
  54. stri
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/68476
推荐阅读
相关标签
  

闽ICP备14008679号