Initialization of a static data member of a C++ template -


मैंने निम्नलिखित फ़ंक्शन ऑब्जेक्ट टेम्प्लेट क्लास लिखा है:

  टेम्पलेट & lt; typename P = double , टाइपनाम सी = डबल & gt; वर्ग वैट {सार्वजनिक: वैट (पी पी): प्रतिशतता (पी) {}; पी ऑपरेटर () (सी मुद्रा) {मुद्रा = मुद्रा + मुद्रा * (प्रतिशतता / 100); वापसी मुद्रा; } निजी: पी प्रतिशतता; };   

जो एक मानक कंटेनर पर कार्य करेगा और उसके मूल्यों को बदल देगा, जैसे:

  std :: transform (prices.begin (), कीमतें अंत (), prices.begin (), std :: बाँध (वैट को & lt; डबल, डबल & gt; (25), std :: प्लेसहोल्डर :: _ 1));   

मैं क्या हासिल करना चाहता हूं, यह एक sum होना चाहिए जो कीमतों में बदलाव के रूप में अपडेट हो जाएगा। इसलिए मैंने एक स्थिर डेटा सदस्य माना है, इसलिए मैं स्थिर सी राशि = 0 और

  पी ऑपरेटर () (सी मुद्रा) {मुद्रा सहित टेम्पलेट को दोबारा लिखना चाहता हूं} = मुद्रा + मुद्रा * (प्रतिशतता / 100); योग = योग + मुद्रा; वापसी मुद्रा; }   

लेकिन यह सही नहीं है। क्या वैसे भी हासिल करने के लिए क्या करना है जो मैं करना चाहता हूं?

आप अपनी कक्षा के लिए थोड़ा सा बदलाव कर सकते हैं और जिस तरह से आप इसका उपयोग कर रहे हैं।

  टेम्पलेट & typ; नाम टाइप करें पी = डबल, टाइपनाम C = double & gt; वर्ग VAT {सार्वजनिक: वैट (पी पी, पी एंड amp): प्रतिशतता (पी), राशि (राशि) {}; पी ऑपरेटर () (सी मुद्रा) {मुद्रा = मुद्रा + मुद्रा * (प्रतिशतता / 100); राशि + = मुद्रा; वापसी मुद्रा; } निजी: पी प्रतिशतता; पी & amp; राशि; }; डबल राशि = 0.0; वैट और लेफ्टिनेंट; डबल, डबल & gt; वैट (25, राशि); std :: बदलने (prices.begin (), prices.end (), prices.begin (), वैट, std :: प्लेसहोल्डर :: _ 1)); // अब आप योग का उपयोग कर सकते हैं ... std: cout & lt; & lt; राशि & lt; & lt; std :: endl;    

Comments

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

java - JPA TypedQuery: Parameter value element did not match expected type -

c++ - static template member variable has internal linkage but is not defined -