what does the scope resolution operator used in a class name mean

c++, class, scope-resolution

Solution

maybe OtherClass is a class that exists inside the scope of SomeClass?

Give yourself a checkmark. That is what it means.

This is used to subsequently define `OtherClass` after it was declared inside `SomeClass`:

class SomeClass {
    class OtherClass;
    OtherClass* GetOtherClassInstance() { ...}
};
class SomeClass::OtherClass {
} 

One might do this if the inner class only makes sense in the context of the exterior class.

class Vector {
  class Iterator;
  Iterator* GetStart();
};
class Vector::Iterator {
   details.
}

As mentioned elsewhere, the pimpl idiom is an excellent use of inner classes with deferred definition.

Problem

I came across this code. ``` class SomeClass::OtherClass : public BaseClass { // stuff in here } ``` SomeClass is a class, so maybe OtherClass is a class that exists inside the scope of SomeClass? I've just never seen it done this way. So, is that what it means?

Original source