zoukankan      html  css  js  c++  java
  • Item 29. Virtual Constructors and Prototype&Item 30. Factory Method

    Item 29. Virtual Constructors and Prototype

    Virtual Constructors?
    C++没有Virtual Constructors这个概念。但有的情况下又需要这个功能,即在多态的时候能够创建出一个跟指针的动态类型相同的一个对象。既然是多态就要考虑虚函数,在虚函数中调用构造函数不就行了么?是的,这就是设计模式中的Prototype的解决方案:一个clone()的虚成员函数。
    class Meal {
       public:
         virtual ~Meal();
         virtual void eat() = 0;
         virtual Meal *clone() const = 0;
         //...
    };

    class Spaghetti : public Meal {
       public:
         Spaghetti( const Spaghetti & ); // copy ctor
         void eat();
         Spaghetti *clone() const
             { return new Spaghetti( *this ); } // call copy ctor
         //...
    };

    const Meal *m = new Spaghetti;
    Meal *myMeal = m->clone();


    Item 30. Factory Method
    哦,《设计模式》一书的更详细。

  • 相关阅读:
    连接心跳问题
    超时时间已到
    CSS定位属性-position
    AJAX背景技术介绍
    mysql中length字符长度函数使用方法
    mysql常用函数
    php构造函数的继承方法
    属性选择器(通常用在input)
    input标签常用属性
    PHP程序如何debug?
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333222.html
Copyright © 2011-2022 走看看