Nested Class Definition in source file

后端 未结 1 1341
逝去的感伤
逝去的感伤 2020-12-28 12:54

If I have a nested class like so:

  class MyClass
  {
    class NestedClass
    {
    public:
      // nested class members AND definitions here
    };

             


        
相关标签:
1条回答
  • 2020-12-28 13:28

    You can. If your inner class has a method like:

      class MyClass   {
        class NestedClass
        {
        public:
          void someMethod();
        };
    
        // main class members here
      };
    

    ...then you can define it in the .cpp file like so:

    void MyClass::NestedClass::someMethod() {
       // blah
    }
    

    Structures are almost the same thing as classes in C++ — just defaulting to 'public' for their access. They are treated in all other respects just like classes.

    You can (as noted in comments) just declare an inner class, e.g.:

    class MyClass   {
        class NestedClass;
        // blah
    };
    

    ..and then define it in the implementation file:

    class MyClass::NestedClass {
      // etc.
    };
    
    0 讨论(0)
提交回复
热议问题