견고성-생성자

생성자는 다음을 사용하여 선언 된 특수 함수입니다. constructor예어. 선택적 기능이며 계약의 상태 변수를 초기화하는 데 사용됩니다. 다음은 생성자의 주요 특성입니다.

  • 계약에는 생성자가 하나만있을 수 있습니다.

  • 컨트랙트가 생성 될 때 생성자 코드는 한 번 실행되며 컨트랙트 상태를 초기화하는 데 사용됩니다.

  • 생성자 코드가 실행 된 후 최종 코드가 블록 체인에 배포됩니다. 이 코드에는 공용 함수와 공용 함수를 통해 도달 할 수있는 코드가 포함됩니다. 생성자 코드 또는 생성자 만 사용하는 내부 메서드는 최종 코드에 포함되지 않습니다.

  • 생성자는 공용 또는 내부 일 수 있습니다.

  • 내부 생성자는 계약을 추상으로 표시합니다.

  • 생성자가 정의되지 않은 경우 계약에 기본 생성자가 있습니다.

pragma solidity ^0.5.0;

contract Test {
   constructor() public {}
}
  • 기본 계약에 인수가있는 생성자가있는 경우 각 파생 계약은 인수를 전달해야합니다.

  • 기본 생성자는 다음 방법을 사용하여 직접 초기화 할 수 있습니다.

pragma solidity ^0.5.0;

contract Base {
   uint data;
   constructor(uint _data) public {
      data = _data;   
   }
}
contract Derived is Base (5) {
   constructor() public {}
}
  • 기본 생성자는 다음과 같은 방법으로 간접적으로 초기화 될 수 있습니다.

pragma solidity ^0.5.0;

contract Base {
   uint data;
   constructor(uint _data) public {
      data = _data;   
   }
}
contract Derived is Base {
   constructor(uint _info) Base(_info * _info) public {}
}
  • 기본 계약 생성자를 초기화하는 직접 및 간접 방법은 허용되지 않습니다.

  • 파생 계약이 기본 계약 생성자에 인수를 전달하지 않으면 파생 계약이 추상이됩니다.