Appearance
多重合约的构造函数
多重合约是在 Solidity
中使用的一种重要的设计模式,它允许将多个合约封装到一个主合约中,以便在多个合约之间共享数据和逻辑。在多重合约中,每个子合约都有自己的构造函数,并且这些构造函数在部署合约时会按照指定的顺序依次执行。
示例
以下是一个简单的多重合约示例,包括一个主合约和两个子合约。主合约 Show
中包含两个字符串变量 message1
和 message2
,分别属于两个子合约 A
和 B
。在部署主合约时,它会先创建合约 A
,然后创建合约 B
,最后将 message1
和 message2
分别设置为合约 A
和合约 B
中的字符串变量。
solidity
pragma solidity ^0.8.0;
contract A {
string public messageA;
constructor(string memory _messageA) {
messageA = _messageA;
}
}
contract B {
string public messageB;
constructor(string memory _messageB) {
messageB = _messageB;
}
}
contract Show {
string public message1;
string public message2;
constructor(string memory _message1, string memory _message2) {
A a = new A(_message1);
B b = new B(_message2);
message1 = a.messageA();
message2 = b.messageB();
}
}
在上面的代码中,两个子合约 A
和 B
都有一个包含一个字符串参数的构造函数,它们用于初始化各自的字符串变量。
主合约 Show
的构造函数接受两个字符串参数,分别用于创建合约 A
和合约 B
。在构造函数中,我们使用 new
关键字来创建合约 A
和 B
的实例,然后将它们的 messageA
和 messageB
字符串变量赋值给主合约 Show
的 message1
和 message2
字符串变量。