我碰到了这段代码。

class SomeClass::OtherClass : public BaseClass
{
  // stuff in here
}

SomeClass是一个类,所以OtherClass可能是存在于SomeClass范围内的类吗?我只是从未见过这样做。

那是什么意思?

最佳答案



给自己打一个勾号。那是什么意思。

OtherClass中声明了SomeClass后,将使用该方法来随后定义ojit_code:

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

如果内部类仅在外部类的上下文中有意义,则可以这样做。
class Vector {
  class Iterator;
  Iterator* GetStart();
};
class Vector::Iterator {
   details.
}

正如在其他地方提到的那样,pimpl习惯用法是对内部类的出色使用,并带有延迟的定义。

09-09 19:36