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

构造函数的作用

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

构造函数

在老版本的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;
}

}