2011-10-07 9 views
5

मैं थोड़ी देर के लिए सी ++ से दूर हूं, और मुझे इसके साथ थोड़ा परेशानी हो रही है। मैं आपको अपना खराब कोड छोड़ दूंगा - क्या कोई व्यक्ति एक छोटे से वर्ग के लिए एक साधारण हेडर फ़ाइल और स्रोत फ़ाइल लिखने के लिए एक 'मॉडल उत्तर' पोस्ट कर सकता है, जो कुछ मूल्य स्वीकार करता है, और कुछ आधार को पास करता है कक्षा कन्स्ट्रक्टर? मुझे चिंता है कि मैं गलती से कुछ इनलाइन कर रहा हूं। धन्यवाद।सी ++ विरासत रचनाकारों को कैसे लिखें

कभी-कभी इंटरनेट पर स्पष्ट उदाहरण ढूंढने के लिए सबसे सरल उत्तर सबसे कठिन उत्तर होते हैं।

+0

क्यों downvote? –

+0

इनलाइनिंग के संबंध में आप किस बारे में चिंतित हैं? –

उत्तर

8
// ExampleClass.h 
#ifndef ExampleClass_H_ 
#define ExampleClass_H_ 

#include "ExampleBase.h" 

class ExampleClass : public ExampleBase { 
public: 
    ExampleClass(int a); 
}; 

#endif 


// ExampleClass.cpp 
#include "ExampleClass.h" 

ExampleClass::ExampleClass(int a) : ExampleBase(a) 
{ 
    // other constructor stuff here 
} 
6

initializer list बेस कक्षाओं को आरंभ करने के लिए उपयोग किया जाता है। उदाहरण सदस्यों से पहले बेस कक्षा शुरू करें। Non-virtual base classes are initialized from left to right, इसलिए यदि आपके पास एकाधिक आधार हैं, तो उन्हें घोषित क्रम में प्रारंभ करें।

#include <iostream> 

struct Base { 
    Base(int i) { 
     std::cout << i << std::endl; 
    } 
}; 

struct Derived : public Base { 
    Derived(int i) : Base(i) {} 
}; 
+0

ईमानदारी से, मुझे आश्चर्य है कि मुझे सी ++ एफएक्यू में इस तरह का एक साधारण उदाहरण नहीं मिल रहा है। अगर कोई उपयुक्त अनुभाग में एक लिंक छोड़ सकता है, तो मैं इसकी सराहना करता हूं। –

4

देखकर रूप में ओपी गैर इनलाइन संस्करणों का अनुरोध किया, मैं संशोधनों के साथ repost होगी:

यहाँ आधार वर्ग निर्माता के लिए तर्क गुजर का एक उदाहरण है।

struct Base { 
    Base (int); 
}; 

struct Derived : public Base { 
    Derived (int); 
}; 

Derived :: Derived (int i) 
: Base (i) 
{ 
} 
+0

वोटों की कमी के बावजूद यह स्वीकार्य उत्तर होना चाहिए। –

1
class Parent 
{ 
    // Parent Constructor 
    Parent(int x) 
    { 
     // Constructor Code 
    } 
}; 

class Child : public Parent 
{ 
    // Child Constructor 
    Child(int x, int y, int z) : Parent(x) 
    { 
     // Constructor Code 
    } 
}; 
संबंधित मुद्दे