C++ में "नो डिफॉल्ट कंस्ट्रक्टर" त्रुटि को कैसे ठीक करें
इस संदर्भ में "विचलित" का अर्थ है कि कोड का अपेक्षित व्यवहार बदल गया है, और यह अब अपेक्षित पैटर्न का पालन नहीं कर रहा है। दूसरे शब्दों में, कोड अपने इच्छित पथ से भटक गया है। आप जिस समस्या का सामना कर रहे हैं वह इस तथ्य के कारण है कि `std::vector` में कोई डिफ़ॉल्ट कंस्ट्रक्टर नहीं है, इसलिए जब आप `MyVector' का एक उदाहरण बनाने का प्रयास करते हैं `बिना कोई तर्क प्रदान किए, कंपाइलर ऑब्जेक्ट का निर्माण करने में सक्षम नहीं होगा।
इस समस्या को ठीक करने के लिए, आप अपने `MyVector` वर्ग में एक डिफ़ॉल्ट कंस्ट्रक्टर जोड़ सकते हैं जो एक खाली सूची के साथ वेक्टर को आरंभ करता है:
```
class MyVector {
std::vector
public:
MyVector() : myVector{} {} // डिफ़ॉल्ट कंस्ट्रक्टर // ... अन्य विधियां ...
};
```
यह आपको उदाहरण बनाने की अनुमति देगा `MyVector` का बिना किसी तर्क के, और ऑब्जेक्ट का निर्माण सही ढंग से किया जाएगा।
वैकल्पिक रूप से, आप एक कंस्ट्रक्टर भी जोड़ सकते हैं जो कोई तर्क नहीं लेता है और एक खाली सूची के साथ वेक्टर को प्रारंभ करता है:
```
class MyVector {
std::vector< int> myVector;
public:
MyVector(const std::vector
};
```
यह आपको बिना किसी तर्क के `माईवेक्टर` के उदाहरण बनाने की भी अनुमति देगा, और ऑब्जेक्ट का निर्माण सही ढंग से किया जाएगा।