2012-05-24 15 views
5

मैं एक किताब पढ़ रहा हूं, सी ++ के प्राइमर गाइड।क्या ये सी ++ शब्द सही हैं?

मुझे लगता है कि मुझे इसे एक बिंदु तक लटका दिया गया है, मैं बस कुछ चीजों को स्पष्ट करना चाहता हूं।

  1. इसमें कहा गया है कि एक class एक डेटा प्रकार (A डेटा प्रकार किया जा रहा int, char, ect ..) की तरह और कहा कि एक Object/उदाहरण एक चर की तरह है। क्या ये सच है?

  2. डेटा फॉर्म क्या है?

  3. घोषणा का कोई हिस्सा घोषणा है? क्या यह data type + the variable है, और = असाइनमेंट है?

+4

आपका स्रोत फ़ाइल शायद की तरह बार के लिए परिभाषा प्रदान करेगा इतने सारे डाउनवॉट क्यों? – TeaOverflow

+0

मुझे नहीं पता; मैंने सोचा कि प्रश्नों का उत्तर देना आसान होगा और मैंने प्रश्न लिखने में समय लगाया ताकि उन्हें कुशलता से वापस किया जा सके। – Ayfiaru

+2

मुझे लगता है कि यह थोड़ा कठोर है। अगर वह पहले से ही एक किताब पढ़ रहा है और वह उलझन में है तो वे वैध प्रश्न हैं। –

उत्तर

5

काफी नहीं।

एक वर्ग "डेटा प्रकार की तरह" है, इस अर्थ में कि यह किसी ऑब्जेक्ट के निर्माण के लिए एक टेम्पलेट है, लेकिन यह स्वयं एक ऑब्जेक्ट नहीं है जिसका आप उपयोग कर सकते हैं।

जब आप किसी ऑब्जेक्ट का उदाहरण बनाने के लिए उस टेम्पलेट का उपयोग करते हैं, तो आप उस ऑब्जेक्ट का उपयोग कर सकते हैं। आप जितना चाहें उतने उदाहरण बना सकते हैं - आप उन उदाहरणों को चर के रूप में सोच सकते हैं।

उदाहरण के लिए:

class Person 
{ 
    public: 
     Person() : name("Joe Bloggs") {} 

     std::string getName() { return name; } 

     void setName(std::string n) { name = n; } 

    private: 
     std::string name;  
}; 

यह एक व्यक्ति के लिए एक वर्ग परिभाषा है। यह एक चर नहीं है। आप उस पर setName को कॉल नहीं कर सकते क्योंकि यह अभी तक अस्तित्व में नहीं है। लेकिन आप करते हैं जब:

int main() 
{ 
    Person p, q; 
    p.setName("Jill Bloggs"); 
    q.setName("Bob King"); 
    std::cout << p.getName() << " " << q.getName() << std::endl; 
} 

आप लोगों को कि आप के लिए, परिवर्तन प्रदान कर सकते हैं, और उपयोग के दो उदाहरणों बनाया - वे चर उदाहरणों कहा जाता है।

मुझे नहीं पता कि "डेटा फॉर्म" का अर्थ क्या है, इसे अनदेखा करें।

घोषणा के लिए - घोषणा बताती है कि कुछ का उदाहरण मौजूद होगा। उदाहरण के लिए, यदि आप एक वर्ग है, और अपने हेडर फाइल निर्माण कर रहे थे था:

class foo 
{ 
    public: 

     foo(int value); 

     void bar(); 

    private: 
     int x; 
}; 

आप की घोषणा कर रहे हैं आप एक समारोह में कहा जाता है कि बार शून्य रिटर्न है और आप एक पूर्णांक एक्स कहा जाता है कि कि।

परिवर्तनीय, एक्स, और कोई परिभाषा प्रदान नहीं की गई है या बार के लिए कोई स्मृति आवंटित नहीं है, इसलिए वे केवल घोषणाएं हैं। और

void foo::bar() 
{ 
    //some code 
} 

foo के लिए एक निर्माता definiton कि एक मूल्य के साथ एक्स प्रारंभ और (एक प्रारंभकर्ता सूची के साथ) पर नियंत्रण है कि यह कैसे बनाया गया था होगा::

foo::foo(int value) : x(value) 
{ 
    //some code 
} 
+0

हाहा व्याख्या करने के लिए समय लेने के लिए बहुत बहुत धन्यवाद! – Ayfiaru

+1

कोई समस्या नहीं है। यह आसान हो जाता है - आपको पता चलेगा कि आप अपने दूसरे साल के कॉलेज फाइनल प्रोजेक्ट को फिर से लिख सकते हैं, जिसमें आपके वरिष्ठ वर्ष में 15 मिनट में 3 महीने लग गए :) (मान लीजिए कि आप कॉलेज में हैं, हाहा)। –

+0

बहुत बढ़िया, धन्यवाद;) – Ayfiaru

संबंधित मुद्दे