构造函数的作用

构造函数是特殊的函数,在部署合约的时候,就会被调用。而且只能够在此时被调用。
常常用于对于某一些状态变量的初始化。

构造函数

在老版本的solidity编译器中,构造函数是和合约名字同名的

1
2
3
4
5
6
7
8
9
10
11
contract  ontractinit{

uint public a ;
//无参数的构造函数
function ontractinit() public{
   a = 100;
}
//带参数的构造函数
 function ontractinit(uint _a,uint _b) public{
   a = _a;
}

新版本的solidity编译器中,使用关键词constructor作为构造函数

1
2
3
4
5
6
7
8
9
10
11
12
13
uint public a ;
address public owner;


// 将部署者地址存储到owner变量
constructor() public {
  owner = msg.sender;
}

//带参构造函数
constructor(uint _a) public{
   a = _a;
}

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pragma solidity ^0.4.23;

contract  ontractinit{
   // function ontractinit() public{
   //     a = 100;
   // }

   //   function ontractinit(uint _a,uint _b) public{
   //     a = _a;
   // }
   uint public a ;
   address public owner;
   constructor(uint _a) public{
       a = _a;
   }
   constructor() public {
       owner = msg.sender;
   }

}

solidity智能合约[31]-构造函数_智能合约