सॉलिडिटी - कंस्ट्रक्टर्स

कंस्ट्रक्टर एक विशेष फ़ंक्शन का उपयोग करके घोषित किया गया है constructorकीवर्ड। यह एक वैकल्पिक funtion है और एक अनुबंध के राज्य चर को इनिशियलाइज़ करने के लिए उपयोग किया जाता है। एक निर्माणकर्ता की प्रमुख विशेषताएं निम्नलिखित हैं।

  • एक अनुबंध में केवल एक निर्माता हो सकता है।

  • एक कॉन्ट्रैक्टर कोड को एक बार निष्पादित किया जाता है जब एक अनुबंध बनाया जाता है और इसका उपयोग अनुबंध स्थिति को इनिशियलाइज़ करने के लिए किया जाता है।

  • एक कंस्ट्रक्टर कोड निष्पादित होने के बाद, अंतिम कोड ब्लॉकचैन में तैनात किया जाता है। इस कोड में सार्वजनिक फ़ंक्शन और सार्वजनिक कार्यों के माध्यम से उपलब्ध कोड शामिल हैं। कंस्ट्रक्टर कोड या केवल कंस्ट्रक्टर द्वारा उपयोग की जाने वाली किसी भी आंतरिक विधि को अंतिम कोड में शामिल नहीं किया गया है।

  • एक निर्माता या तो सार्वजनिक या आंतरिक हो सकता है।

  • एक आंतरिक निर्माता अनुबंध को सार के रूप में चिह्नित करता है।

  • मामले में, कोई भी कंस्ट्रक्टर परिभाषित नहीं है, एक डिफ़ॉल्ट कंस्ट्रक्टर अनुबंध में मौजूद है।

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 {}
}
  • आधार कॉन्ट्रैक्ट कंस्ट्रक्टर को शुरू करने के प्रत्यक्ष और अप्रत्यक्ष तरीके की अनुमति नहीं है।

  • यदि व्युत्पन्न अनुबंध आधार अनुबंध निर्माता के लिए तर्क (नों) को पारित नहीं कर रहा है, तो व्युत्पन्न अनुबंध सार हो जाएगा।