Наследование солидности: как я могу получить доступ к переменным в унаследованных контрактах? - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть контрактный автомобиль, унаследованный от BasicData и Ownership.Когда автомобиль передается новому владельцу, я хочу создать событие.В этом случае мне нужно передать идентификатор автомобиля в этом событии для целей регистрации.

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 голосов
/ 07 декабря 2018

Вы не можете получить доступ к _id в Ownership, потому что он не имеет такой переменной состояния и не наследует от чего-либо.

Вы можете получить доступ к _id в Car, потому что это действительно наследуется от чего-то, что объявляет эту переменную (BasicData).

Возможное исправление состоит в том, чтобы Ownership наследовал от BasicData.(Тогда Car может наследоваться от просто Ownership.)

...