Solidity

Mist 錯誤:“無法編譯原始碼”

  • August 25, 2016

圖像包含我編寫的錯誤和程式碼。我在我的程式碼中使用了繼承。

圖像包含我編寫的錯誤和程式碼。 我在我的程式碼中使用了繼承。

你應該有owner = msg.sender。否則我會收到以下錯誤:

Error: Expression has to be an lvalue.
   msg.sender = owner;
   ^--------^

在我得到它之後,我沒有得到任何錯誤。這是有道理的,因為您希望將合約的創建者(即消息發送者)指定為合約的所有者。

你在哪裡使用繼承,因為我沒有看到它。繼承類似於contract User is mortal{…}

對於您的問題,我沒有答案,但請嘗試在solidity 瀏覽器編譯器中編譯此程式碼。如果它編譯,那麼 Mist 有問題。這是編譯器的連結

剛剛注意到第 7 行應該有 owner = msg.sender

據我了解,每個地址只能部署一份合約。這意味著您只能部署 User 或 Mortal 合約。但是,您可以將它們編譯在一起(您正在嘗試做的事情)並在內部連接它們。

例如,如果您在使用者契約中執行以下操作:

address mortal = new mortal()

編譯器/EVM 將部署新的合約 mortal 並返回它的地址,該地址將在 mortal 變數中可用。

然後在您的使用者契約程式碼中,您可以執行以下操作:

mortal.kill()

引用自:https://ethereum.stackexchange.com/questions/7569