实体继承:如何访问继承合同中的变量?

时间:2018-12-07 10:19:31

标签: inheritance multiple-inheritance solidity

我有Car合同,继承自BasicData和Ownership。 当汽车转移给新主人时,我想发出一个事件。 在那种情况下,我需要在该事件中传递汽车的ID以用于记录。

contract Car is BasicData, Ownership
{
  // does all kinds of stuff
}

_

contract BasicData
{
  uint public _id;
  // etc
}

_

contract Ownership
{
  address owner;

  function transferOwnership(address newOwner) public onlyOwner {
    owner = newOwner;
    emit Update("Contract with ID changed owner", _id, newOwner)
  }
}

如何使用_id方法访问transferOwnership

1 个答案:

答案 0 :(得分:0)

您无法访问_id中的Ownership,因为它没有这样的状态变量并且不会继承任何东西。

您可以访问_id中的Car,因为它确实继承自声明该变量(BasicData)的内容。

可能的解决方法是让Ownership继承自BasicData。 (然后Car可以仅继承Ownership。)