Mist-Fehler: "Quellcode konnte nicht kompiliert werden"

Das Bild enthält den Fehler und den Code, den ich geschrieben habe. Ich habe die Vererbung in meinem Code verwendet.

Das Bild enthält den Fehler und den Code, den ich geschrieben habe.  Ich habe die Vererbung in meinem Code verwendet.

Antworten (2)

Du solltest haben owner = msg.sender. Sonst bekomme ich folgenden Fehler:

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

Nachdem ich das bekommen habe, bekomme ich keine Fehler. Dies ist sinnvoll, da Sie den Ersteller des Vertrags (dh den Absender der Nachricht) zum Eigentümer des Vertrags machen möchten.

Wo haben Sie Vererbung verwendet, weil ich es nicht sehe. Vererbung ist so etwas wie contract User is mortal{...}

Ich habe keine Antwort auf Ihre Frage, aber versuchen Sie, diesen Code im Solidity-Browser-Compiler zu kompilieren. Wenn es kompiliert, stimmt etwas mit Mist nicht. Hier ist der Link zum Compiler

Habe gerade in Zeile 7 bemerkt, dass es owner = msg.sender geben sollte

Soweit ich weiß, können Sie nur einen Vertrag pro Adresse bereitstellen. Dies bedeutet, dass Sie nur Benutzer- oder Mortal-Verträge bereitstellen können. Sie können sie jedoch zusammen kompilieren (was Sie versuchen zu tun) und intern verbinden.

Wenn Sie beispielsweise in Ihrem Benutzervertrag Folgendes tun:

 address mortal = new mortal()

Der Compiler/EVM stellt einen neuen Vertrags-Mortal bereit und gibt seine Adresse zurück, die unter der Sterblich-Variablen verfügbar sein wird.

Dann können Sie in Ihrem Benutzervertragscode Dinge tun wie:

 mortal.kill()
Wenn ich den Compiler ausgeführt habe. Ich erhalte einen Fehler mit den erwarteten primären Ausdrücken {um 16:3 ". Aber ich bekomme immer noch nicht, wie ich das Problem lösen kann. Helfen Sie mir, wenn Sie können.