मैं बस सोच रहा हूं कि लूप का उपयोग किए बिना सभी शून्य मानों पर पॉइंटर्स की प्रारंभिक सरणी सेट करने का कोई तरीका है या नहीं?

class Abc{
  //An array of 2000 Product pointers
  Product* product_[2000];
      public:
         Abc();
}

जब कन्स्ट्रक्टर को बुलाया जाता है तो मैं सभी पॉइंटर्स को शून्य पर सेट करना चाहता हूं:

Abc::Abc(){
    product_ = {};
}

यह काम नहीं करता है, product_ एक परिवर्तनीय मान होना चाहिए। क्या 2000 तत्वों को लूप करने का कोई आसान तरीका है?

धन्यवाद।

0
Andy Lin 16 अगस्त 2017, 03:14

3 जवाब

सबसे बढ़िया उत्तर

आप इस्तेमाल कर सकते हैं:

class Abc{
  //An array of 2000 Product pointers
  Product* product_[2000];
      public:
         Abc() : product_{} {}
};
3
Jarod42 16 अगस्त 2017, 03:20

यदि आप std::array का उपयोग करते हैं तो उन्हें डिफ़ॉल्ट रूप से nullptr में प्रारंभ किया जाएगा।

std::array<Product *, 2000> product;
1
Robinson 16 अगस्त 2017, 03:33

विजुअल स्टूडियो कंपाइलर के साथ आप नीचे की तरह इनिशियलाइज़र सूची में पॉइंटर्स को NULL में इनिशियलाइज़ कर सकते हैं-

class Abc{
  //An array of 2000 Product pointers
  Product* product_[2000];
      public:
         Abc():product_(){};
}
0
Amit Rastogi 16 अगस्त 2017, 11:03