2012-05-04 4 views

답변

10

어쩌면 OtherClass는 SomeClass의 범위 안에있는 클래스입니까?

자신에게 확인 표시를하십시오. 그것이 의미하는 바입니다. 이 SomeClass 내에서 선언 된 후

이 연속적 OtherClass을 정의하는 데 사용됩니다 : 내부 클래스는 외부 클래스의 맥락에서 의미가있는 경우

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

하나는이 작업을 수행 할 수 있습니다.

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

다른 곳에서 언급했듯이, pimpl 관용구는 지연된 정의가있는 내부 클래스를 잘 사용합니다.

0

내가 SomeClass 생각은 OtherClass 그것은 OtherClass은 SomeClass의 내부 클래스는 것을 의미

class BaseClass {}; 
namespace SomeClass 
{ 
    class OtherClass; 
}; 

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

SomeClass가 순수한 네임 스페이스 인 경우이 구문이 유효한지 확실하지 않습니다. class NameSpaceName :: ClassName : public BaseClass –

3

상주하는 네임 스페이스입니다. 이미 이미 선언 된 것이 더 낫습니다. pimpl 관용구를 위해 좋은 작동 :

struct my_object { 
    ... 

private: 
    struct my_impl; 
    my_impl * pimpl; 
}; 

// in a cpp file... 
struct my_object::my_impl { 
    ...implementation details of my_object 
}; 
0

일부 클래스는 기본 클래스의 이름이고, 다른 클래스가 파생 클래스의 내부를 연결하고 콜론 파생 클래스 링크의 기본 클래스 이후 파생 클래스입니다. 귀하의 질문에 대답은 두 개의 기본 클래스이고 하나의 파생 된 클래스는 언급입니다.

관련 문제