함수 내부에서 클래스를 정의하여 서로에 대해 "알 수"있도록하려면 어떻게해야합니까? 여기에 내가 이해하려고 노력하고있는 것의 매우 실망한 버전이있다. 나는 다음과 같은 것을하고 싶다.함수 내에서 선언 된 상호 C++ 클래스
void foo() {
struct A {
static void bar() {
B::hmm();
}
};
struct B {
static void hmm() {
A::bar();
}
}
}
A :: bar()가 B에 대해 아직 모르기 때문에 그 방법이 작동하지 않는다. 함수 밖에서 B가 선언 될 때까지 A :: bar()의 정의를 연기 할 수 있습니다. 예 :
void foo() {
struct A {
static void bar();
};
struct B {
static void hmm() {
A::bar();
}
}
void A::bar() {
B::hmm();
}
}
하지만 내부에서 작동하지 않는 것 같습니다.
이 모든 기능을 수행하는 영리한 범위 지정 선언 대신 C++ (참조하시기 바랍니다)에서이 기능을 사용할 수 없다는 확실한 답변도 환영합니다.
내가 거기에 (예를 들어, foo는 외부 클래스를 선언)이 문제를 해결하는 다른 방법은, 그래서 비슷한 작업을 수행하는 방법에 대한 해답을 찾는 게 아니에요 알고...
왜 네임 스페이스를 사용할 수 없습니까? – GWW
@GWW, 당신은 내 마지막 문장을 읽지 않았다. – xscott
나는 그것을 읽었지 만 네임 스페이스를 사용할 수없고 함수를 사용해야하는 이유가 궁금합니다. – GWW