Der alte Weg: Konstruktorfunktion ist der gleiche wie der Vertragsname:
contract CtrtFactory {
function makeCtrt () { address ctrtAddress = new Ctrt (...);
}
} contract Ctrt () {
function Ctrt (..) {}
}
----------------- == Aber jetzt sagt die neue Solidity-Syntax, dass "Konstruktor" als Funktionsname für Konstruktoren verwendet werden soll ...: Warnung: Konstruktoren als Funktionen mit dem definieren Der gleiche Name wie der Vertrag ist veraltet. Verwenden Sie stattdessen "Konstruktor (...) {...}".
contract CtrtFactory {
Ctrt ctrt ;
function makeCtrt () { address ctrtAddress = Ctrt . constructor (...); // This gives me ERROR...
//but I don't know how to fix this.. adding "new" keyword does not help...
}
} contract Ctrt () {
function constructor (..) {}
}
----------------- == Bitte helfen Sie mir. Vielen Dank.
In Remix wird Folgendes kompiliert:
contract CtrtFactory {
Ctrt ctrt ;
function makeCtrt () {
Ctrt newCtrt = new Ctrt (); emit CtrtCreated ( newCtrt );
}
event CtrtCreated ( Ctrt ctrt );
} contract Ctrt {
function constructor () {}
}
Beachten Sie, dass der Konstruktor von Ctrt zwar als constructor
wird, wir ihn jedoch mit new Ctrt()
Russo