के जटिल आरंभीकरण इस तरह एक वर्ग पर विचार करें:स्थिरांक क्षेत्रों
class MyReferenceClass
{
public:
MyReferenceClass();
const double ImportantConstant1;
const double ImportantConstant2;
const double ImportantConstant3;
private:
void ComputeImportantConstants(double *out_const1, double *out_const2, double *out_const3);
}
एक नियमित (ComputeImportantConstants) जो रनटाइम के दौरान तीन स्थिरांक की गणना करता है। मान लीजिए कि गणना काफी जटिल है, और स्वाभाविक रूप से एक ही समय में सभी तीन मानों का उत्पादन करती है। इसके अलावा, परिणाम बिल्ड कॉन्फ़िगरेशन पर निर्भर करते हैं, इसलिए परिणामों को हार्डकोड करना एक विकल्प नहीं है।
क्या कक्षा के संबंधित दोहरे क्षेत्रों में इन गणना मूल्यों को स्टोर करने का कोई समझदार तरीका है?
यदि नहीं, तो क्या आप सी ++ में ऐसी कक्षा घोषित करने का एक और प्राकृतिक तरीका सुझा सकते हैं?
सी # में मैं एक स्थिर श्रेणी के साथ एक स्थैतिक श्रेणी का उपयोग करता हूं, लेकिन यह सी ++ में कोई विकल्प नहीं है। मैंने महत्वपूर्ण कॉन्स्टेंट 1..3 या तो गैर-कॉन्स फ़ील्ड या फ़ंक्शन कॉल करने पर विचार किया है, लेकिन दोनों कम दिखते हैं।
मुझे मिले कॉन्स्ट फ़ील्ड को शुरू करने का एकमात्र तरीका use initializer lists है, लेकिन ऐसी सूची में बहु-आउटपुट गणना के परिणाम पास करना संभव नहीं लगता है।
यदि यह संभव है, तो क्या आप बता सकते हैं कि 'ComputeImportantConstants' कैसे लागू किया गया है? क्या यह काफी लंबा है? तीन स्थिरांक कैसे बातचीत करते हैं, अन्य कारक कैसे शामिल होते हैं? –