2014-02-11 3 views
0

테스트 케이스 코드는 매우 자명하다. 그래서 기본적으로 .cpp 개의 파일을 사용하지 않고이 작업을 수행 할 수 있습니까?두 클래스는 서로 사용

class A 
{ 
public: 

    static int i; 

    static void test(void) 
    { 
     std::cout << "B::i = " << B::i << std::endl; 
    } 
}; 

class B 
{ 
public: 

    static int i; 

    static void test(void) 
    { 
     std::cout << "A::i = " << A::i << std::endl; 
    } 
}; 

int A::i = 1; 
int B::i = 2; 

int main(int argc, char **argv) 
{ 
    A::test(); 
    B::test(); 

    return 0; 
} 

답변

5

외부에 A::test()B::test()을 정의하십시오.

class A 
{ 
public: 
    static int i; 
    static void test(void); 
}; 

class B 
{ 
public: 
    static int i; 
    static void test(void); 
}; 

int A::i = 1; 
int B::i = 2; 

void A::test(void) 
{ 
    std::cout << "B::i = " << B::i << std::endl; 
} 

void B::test(void) 
{ 
    std::cout << "A::i = " << A::i << std::endl; 
} 
+0

나는 그것을 알고 있었다! 왜 실제로 필요할 때 항상 물건을 잊어야합니까? – Vallentin

+0

당신은 이유를 줄 수 있습니다 의식. 그래서 모든 사람들이 쉽게 이해할 것입니다. –