为什么将现有的实体合同实例作为参数传递给合同构造函数

问题描述

对于https://ethereumdev.io/interact-with-other-contracts-from-solidity/中的以下代码

contract CounterFactory {
 
    mapping(address => Counter) _counters;

    function createCounter() public {
        require (_counters[msg.sender] == Counter(0));
        _counters[msg.sender] = new Counter(msg.sender);
    }
    
    function increment() public {
        require (_counters[msg.sender] != Counter(0));
        Counter(_counters[msg.sender]).increment(msg.sender);
        // The following line also works as usual.
        // _counters[msg.sender].increment(msg.sender);
    }
    
    function getCount(address account) public view returns (uint256) {
        require (_counters[account] != Counter(0));
        return (_counters[account].getCount());
    }
    
    function getMyCount() public view returns (uint256) {
        return (getCount(msg.sender));
    }
 
}

为什么这一行(将constact实例传递给构造函数)起作用? Counter(_counters[msg.sender]).increment(msg.sender);

我正在https://remix.ethereum.org/上使用Remix IDE

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)