约束 - 派生类必须具有默认的构造函数

时间:2010-08-28 17:20:48

标签: php c++

我想约束Derived Class必须有一个默认构造函数。 我目前正在以一种变态的方式思考它

template <typename Derived>
class Base{
  public:
    Base(){

    }
    virtual ~Base(){
      new Derived;
    }
};

另一个想法是保持一个没有参数的纯虚拟create()方法。

但还有其他方法吗?除了这两个。 我在用C ++方式思考它。但有没有办法在PHP中做到这一点(我希望negetive answers LOL)

1 个答案:

答案 0 :(得分:1)

是的,PHP LOL中有一种方法:

abstract class Base {
    public final function __construct() {
        $this->constructImpl();
    }
    abstract protected function constructImpl();
}

class Derived extends Base {
    protected function constructImpl() {
        /* implementation here */
    }
}

基本上,你只需要将构造函数标记为final。