2011-09-29 15 views
6

मैं सूचियों को आरंभ करने के तरीके सीखने की कोशिश कर रहा हूं।सी ++ एकाधिक चर के लिए प्रारंभिक सूचियां

मेरे पास नीचे एक साधारण वर्ग है और चर की सूची आरंभ करने की कोशिश कर रहा है। पहला Month(int m): month(m) काम करता है। मैं एक से अधिक चर के साथ उस रेखा के नीचे कुछ ऐसा करने की कोशिश कर रहा हूं। क्या यह प्रारूप में संभव है? क्या मुझे एक लाइनर से तोड़ना होगा?

class Month 
{ 
public: 
    Month(int m) : month(m) {} //this works 
    Month(char first, char second, char third) : first(first){} : second(second){} : third(third){} //DOES NOT WORK 
    Month(); 
    void outputMonthNumber(); //void function that takes no parameters 
    void outputMonthLetters(); //void function that takes no parameters 
private: 
    int month; 
    char first; 
    char second; 
    char third; 
}; 

जाहिर है मैं बहुत सुराग कैसे यह करने के लिए नहीं है, किसी भी मार्गदर्शन की सराहना की जाएगी, धन्यवाद

+2

शिक्षण सामग्री किस तरह प्रयोग कर रहे हैं कि आप इन बातों से उलझन में मिल के लिए बिल्कुल ठीक है? सी ++ पर एक सभ्य पुस्तक उठाएं, और यह काफी सीधे आगे होना चाहिए ... –

+0

खुद को पढ़ाना, कि यह अब कैसे है – dukevin

+0

यह ध्यान देने योग्य है कि शुरुआती सूचियों को आपके क्रम में घोषित किया गया है कक्षा और क्रम में वे क्रम में घोषित नहीं हैं। –

उत्तर

9

इस प्रयास करें:

Month(char first, char second, char third) 
    : first(first), second(second), third(third) {} 

[आप एक पंक्ति के रूप में यह कर सकते हैं । मैंने इसे केवल प्रेजेंटेशन के लिए विभाजित किया है।]

खाली ब्रेसिज़ {} कन्स्ट्रक्टर का एकमात्र निकाय है, जो इस मामले में खाली है।

+0

धन्यवाद, अब मैं देखता हूं :) – dukevin

0

प्रारंभकर्ता अल्पविराम से अलग होते हैं, और आपके कन्स्ट्रक्टर में केवल एक ही शरीर होना चाहिए।

5
Month(char first, char second, char third) 
     : first(first) 
     , second(second) 
     , third(third) 
{} //DOES WORK :) 
+2

मुझे सुंदर स्वरूपण के लिए 2 अपवॉट मिले हैं :) –

3

जैसा कि अन्य ने इंगित किया है, यह केवल वस्तुओं की एक अल्पविराम से अलग सूची है। variable(value) सिंटैक्स प्राइमेटिव डेटाटाइप बनाने का एक डिफ़ॉल्ट तरीका है, उदाहरण के लिए आप इस विधि का उपयोग प्रारंभिक सूचियों के बाहर कर सकते हैं। इसके अतिरिक्त, यदि आपकी कक्षा का कोई सदस्य एक कन्स्ट्रक्टर वाला वर्ग भी है, तो आप इसे उसी तरह से कॉल करेंगे।

आप केवल भविष्य के संदर्भ के लिए कक्षा की घोषणा में सूची डालने के लिए बाध्य नहीं हैं। इस कोड उदाहरण

class Calender{ 
    public: 
     Calender(int month, int day, int year); 
    private: 
     int currentYear; 
     Time time; 
}; 

Calender::Calender(int month, int day, int year) : currentYear(year), time(month, day) { 
    // do constructor stuff, or leave empty 
}; 
संबंधित मुद्दे