2013-03-17 4 views
5

मैं एक error: 'func' does not name a type जब एक वर्ग के एक सदस्य समारोह funcB एक वर्ग C वापस जाने के लिए प्रयास प्राप्त:,सी ++ में कक्षा फ़ंक्शन का उपयोग कैसे करें?

class A { 
    public: 
     class B { 
      public: 
       C func() const { 
        ... 
       } 
      private: 
       friend class A; 
     } 

     class C { 
      public: 
       ... 
      private: 
       friend class A; 
     } 
    private: 
     ... 
} 

जबकि यदि func एक के एक सदस्य समारोह है, उसके बाद निम्न इस त्रुटि का उत्पादन नहीं करता:

class A { 
    public: 
     class B { 
      public: 
       ... 
      private: 
       friend class A; 
     } 

     C func() const { 
      ... 
     } 

     class C { 
      public: 
       ... 
      private: 
       friend class A; 
     } 
    private: 
     ... 
} 

पहला संस्करण काम करने के लिए मैं इसे कैसे ठीक कर सकता हूं?

मुझे एक महान उदाहरण here मिला।

+1

आप कक्षाओं को किसी अन्य वर्ग के अंदर क्यों घोषित कर रहे हैं? – lxop

उत्तर

8

कक्षा बी "उपरोक्त" श्रेणी बी परिभाषित करें, या आगे घोषित करें।

+1

आगे घोषित करने के संकेत के लिए आपको बहुत बहुत धन्यवाद! – Pippi

+1

मैं अभी भी उत्सुक हूं कि आप दूसरे उदाहरण में आगे की घोषणा के बिना क्यों दूर जा सकते हैं ... – Bingo

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