निम्नलिखित वर्गों जहां ConcreteBar
लागू करता BarIfc
को देखते हुए:पासिंग वर्ग के सदस्य
class Base {
public:
Base(BarIfc& bar) : _bar(bar) { }
void foo() {
_bar.bar();
}
private:
Base(const Base& other);
Base& operator=(const Base& other);
BarIfc& _bar; // Pure virtual interface
};
class Child : public Base {
public:
// bar is passed to base class before initialization
Child(int i) : Base(_bar), _bar(i) {
}
private:
Child(const Child& other);
Child& operator=(const Child& other);
ConcreteBar _bar;
};
मैं सही सोचते हैं कि इस
Child(int i) : Base(_bar), _bar(i) {}
"वैध" सी ++ के रूप में हूं जब तक मैं उपयोग नहीं कर रहा हूं (उदाहरण के लिए एक विधि बुला रहा है) _bar
आधार वर्ग की प्रारंभिक सूची में संदर्भ?