函数签名和可见性修饰符之间的 Solidity 构造函数声明和语句

Solidity constructor declaration and statements between function signature and visibility modifieres

我刚刚在一个 Solidity 合约中看到这个,我不明白。具体来说,我不明白在构造函数参数块之后如何进行函数调用。如果它是一个修饰符,它会在“public”之后,但它紧跟在参数之后。 MerkleTreeWithHistory(_merkleTreeHeight) 在这种情况下是什么意思?

  constructor(
    IVerifier _verifier,
    uint256 _denomination,
    uint32 _merkleTreeHeight,
    address _operator
  ) MerkleTreeWithHistory(_merkleTreeHeight) public {
    require(_denomination > 0, "denomination should be greater than 0");
    verifier = _verifier;
    operator = _operator;
    denomination = _denomination;
  }
MerkleTreeWithHistory(_merkleTreeHeight) 

调用父合约构造函数。在进入子合约构造器之前执行。